Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
36 lines
1.2 KiB
Go
36 lines
1.2 KiB
Go
package relationtuples
|
|
|
|
// RelationTupleToDeltas is a helper that converts a slice of RelationTuple to a slice of RelationTupleDelta
|
|
// with the specified RelationTupleDelta_Action. This allows you to conveniently assemble a request for the
|
|
// WriteServiceClient.TransactRelationTuples operation.
|
|
//
|
|
// Example:
|
|
//
|
|
// c.TransactRelationTuples(context.Background(), &rts.TransactRelationTuplesRequest{
|
|
// RelationTupleDeltas: append(rts.RelationTupleToDeltas(insertTuples, rts.RelationTupleDelta_INSERT), rts.RelationTupleToDeltas(deleteTuples, rts.RelationTupleDelta_DELETE)...),
|
|
// })
|
|
func RelationTupleToDeltas(rs []*RelationTuple, action RelationTupleDelta_Action) []*RelationTupleDelta {
|
|
deltas := make([]*RelationTupleDelta, len(rs))
|
|
for i := range rs {
|
|
deltas[i] = &RelationTupleDelta{
|
|
RelationTuple: rs[i],
|
|
Action: action,
|
|
}
|
|
}
|
|
return deltas
|
|
}
|
|
|
|
// NewSubjectSet returns a Subject with a SubjectSet ref.
|
|
func NewSubjectSet(namespace, object, relation string) *Subject {
|
|
return &Subject{Ref: &Subject_Set{Set: &SubjectSet{
|
|
Namespace: namespace,
|
|
Object: object,
|
|
Relation: relation,
|
|
}}}
|
|
}
|
|
|
|
// NewSubjectID returns a Subject with a subject ID ref.
|
|
func NewSubjectID(id string) *Subject {
|
|
return &Subject{Ref: &Subject_Id{Id: id}}
|
|
}
|