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

Method ReadRelationships

internal/servers/data_server.go:61–107  ·  view source on GitHub ↗

ReadRelationships - Allows directly querying the stored engines data to display and filter stored relational tuples

(ctx context.Context, request *v1.RelationshipReadRequest)

Source from the content-addressed store, hash-verified

59
60// ReadRelationships - Allows directly querying the stored engines data to display and filter stored relational tuples
61func (r *DataServer) ReadRelationships(ctx context.Context, request *v1.RelationshipReadRequest) (*v1.RelationshipReadResponse, error) {
62 ctx, span := internal.Tracer.Start(ctx, "data.read.relationships")
63 defer span.End()
64
65 size := request.GetPageSize()
66 if size == 0 {
67 size = 50
68 }
69
70 v := request.Validate()
71 if v != nil {
72 return nil, status.Error(GetStatus(v), v.Error()) // Return validation error
73 }
74
75 snap := request.GetMetadata().GetSnapToken()
76 if snap == "" {
77 st, err := r.dr.HeadSnapshot(ctx, request.GetTenantId())
78 if err != nil {
79 return nil, status.Error(GetStatus(err), err.Error()) // Return snapshot error
80 }
81 snap = st.Encode().String()
82 }
83
84 collection, ct, err := r.dr.ReadRelationships(
85 ctx,
86 request.GetTenantId(),
87 request.GetFilter(),
88 snap,
89 database.NewPagination(
90 database.Size(size),
91 database.Token(request.GetContinuousToken()),
92 ),
93 )
94 if err != nil {
95 span.RecordError(err)
96 span.SetStatus(otelCodes.Error, err.Error())
97 slog.ErrorContext(ctx, err.Error())
98 return nil, status.Error(GetStatus(err), err.Error())
99 }
100
101 r.readRelationshipsHistogram.Record(ctx, 1)
102
103 return &v1.RelationshipReadResponse{
104 Tuples: collection.GetTuples(),
105 ContinuousToken: ct.String(),
106 }, nil
107}
108
109// ReadAttributes - Allows directly querying the stored engines data to display and filter stored attribute tuples
110func (r *DataServer) ReadAttributes(ctx context.Context, request *v1.AttributeReadRequest) (*v1.AttributeReadResponse, error) {

Callers

nothing calls this directly

Implementers 1

UnimplementedDataServerpkg/pb/base/v1/service_grpc.pb.go

Calls 15

NewPaginationFunction · 0.92
SizeFunction · 0.92
TokenFunction · 0.92
GetStatusFunction · 0.85
StartMethod · 0.80
HeadSnapshotMethod · 0.65
StringMethod · 0.65
EncodeMethod · 0.65
ReadRelationshipsMethod · 0.65
GetPageSizeMethod · 0.45
ValidateMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected