MCPcopy Create free account
hub / github.com/Permify/permify / Entity

Function Entity

pkg/schema/builder.go:44–69  ·  view source on GitHub ↗

Entity - Entity builder This function creates and returns a new instance of EntityDefinition. It takes in the name of the entity, an array of relations, and an array of actions. It then initializes the EntityDefinition with the provided values and returns it. The EntityDefinition contains informatio

(name string, relations []*base.RelationDefinition, attributes []*base.AttributeDefinition, permissions []*base.PermissionDefinition)

Source from the content-addressed store, hash-verified

42// It then initializes the EntityDefinition with the provided values and returns it.
43// The EntityDefinition contains information about the entity's name, its relations, actions, and references.
44func Entity(name string, relations []*base.RelationDefinition, attributes []*base.AttributeDefinition, permissions []*base.PermissionDefinition) *base.EntityDefinition {
45 def := &base.EntityDefinition{
46 Name: name,
47 Relations: map[string]*base.RelationDefinition{},
48 Attributes: map[string]*base.AttributeDefinition{},
49 Permissions: map[string]*base.PermissionDefinition{},
50 References: map[string]base.EntityDefinition_Reference{},
51 }
52
53 for _, relation := range relations {
54 def.Relations[relation.Name] = relation
55 def.References[relation.Name] = base.EntityDefinition_REFERENCE_RELATION
56 }
57
58 for _, attribute := range attributes {
59 def.Attributes[attribute.Name] = attribute
60 def.References[attribute.Name] = base.EntityDefinition_REFERENCE_ATTRIBUTE
61 }
62
63 for _, permission := range permissions {
64 def.Permissions[permission.Name] = permission
65 def.References[permission.Name] = base.EntityDefinition_REFERENCE_PERMISSION
66 }
67
68 return def
69}
70
71// Entities - Entities builder
72func Entities(defs ...*base.EntityDefinition) []*base.EntityDefinition {

Callers 1

builder_test.goFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected