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

Method ReadRuleDefinition

internal/storage/memory/schema_reader.go:99–123  ·  view source on GitHub ↗

ReadRuleDefinition - Reads a Rule Definition from repository

(_ context.Context, tenantID, ruleName, version string)

Source from the content-addressed store, hash-verified

97
98// ReadRuleDefinition - Reads a Rule Definition from repository
99func (r *SchemaReader) ReadRuleDefinition(_ context.Context, tenantID, ruleName, version string) (definition *base.RuleDefinition, v string, err error) {
100 txn := r.database.DB.Txn(false)
101 defer txn.Abort()
102 var raw interface{}
103 raw, err = txn.First(constants.SchemaDefinitionsTable, "id", tenantID, ruleName, version) // Query rule definition
104 if err != nil {
105 return nil, "", errors.New(base.ErrorCode_ERROR_CODE_EXECUTION.String())
106 }
107
108 def, ok := raw.(storage.SchemaDefinition)
109 if ok {
110 var sch *base.SchemaDefinition
111 sch, err = schema.NewSchemaFromStringDefinitions(false, def.Serialized())
112 if err != nil {
113 return nil, "", err
114 }
115 definition, err = schema.GetRuleByName(sch, ruleName)
116 if err != nil {
117 return nil, "", err
118 }
119 return definition, def.Version, err
120 }
121
122 return nil, "", errors.New(base.ErrorCode_ERROR_CODE_SCHEMA_NOT_FOUND.String())
123}
124
125// HeadVersion - Reads the latest version from the repository.
126func (r *SchemaReader) HeadVersion(_ context.Context, tenantID string) (string, error) {

Callers

nothing calls this directly

Implementers 7

NoopSchemaReaderinternal/storage/storage.go
SchemaReaderinternal/storage/proxies/cache/schema_
SchemaReaderinternal/storage/proxies/circuitbreake
SchemaReaderinternal/storage/proxies/singleflight/
SchemaReaderinternal/storage/postgres/schema_reade
SchemaReaderinternal/storage/memory/schema_reader.
mockSchemaReaderinternal/engines/lookup_test.go

Calls 4

GetRuleByNameFunction · 0.92
SerializedMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected