MCPcopy Create free account
hub / github.com/cloudwan/gohan / clearTable

Function clearTable

server/server_test.go:1514–1546  ·  view source on GitHub ↗
(tx transaction.Transaction, s *schema.Schema)

Source from the content-addressed store, hash-verified

1512}
1513
1514func clearTable(tx transaction.Transaction, s *schema.Schema) error {
1515 if s.IsAbstract() {
1516 return nil
1517 }
1518 for _, schema := range schema.GetManager().Schemas() {
1519 if schema.ParentSchema == s {
1520 err := clearTable(tx, schema)
1521 if err != nil {
1522 return err
1523 }
1524 } else {
1525 for _, property := range schema.Properties {
1526 if property.Relation == s.Singular {
1527 err := clearTable(tx, schema)
1528 if err != nil {
1529 return err
1530 }
1531 }
1532 }
1533 }
1534 }
1535 resources, _, err := tx.List(s, nil, nil, nil)
1536 if err != nil {
1537 return err
1538 }
1539 for _, resource := range resources {
1540 err = tx.Delete(s, resource.ID())
1541 if err != nil {
1542 return err
1543 }
1544 }
1545 return nil
1546}

Callers 3

server_test.goFile · 0.70

Calls 5

IsAbstractMethod · 0.80
SchemasMethod · 0.65
ListMethod · 0.65
DeleteMethod · 0.65
IDMethod · 0.65

Tested by

no test coverage detected