| 316 | } |
| 317 | |
| 318 | func (m *Mapper) FromSubjectSet(ctx context.Context, set *ketoapi.SubjectSet) (_ *SubjectSet, err error) { |
| 319 | ctx, span := trace.SpanFromContext(ctx).TracerProvider().Tracer("keto/internal/relationtuple").Start(ctx, "Mapper.FromSubjectSet") |
| 320 | defer otelx.End(span, &err) |
| 321 | |
| 322 | nm, err := m.D.Config(ctx).NamespaceManager() |
| 323 | if err != nil { |
| 324 | return nil, err |
| 325 | } |
| 326 | n, err := nm.GetNamespaceByName(ctx, set.Namespace) |
| 327 | if err != nil { |
| 328 | return nil, err |
| 329 | } |
| 330 | var u []uuid.UUID |
| 331 | if m.ReadOnly { |
| 332 | u, err = m.D.MappingManager().MapStringsToUUIDsReadOnly(ctx, set.Object) |
| 333 | } else { |
| 334 | u, err = m.D.MappingManager().MapStringsToUUIDs(ctx, set.Object) |
| 335 | } |
| 336 | if err != nil { |
| 337 | return nil, err |
| 338 | } |
| 339 | return &SubjectSet{ |
| 340 | Namespace: n.Name, |
| 341 | Object: u[0], |
| 342 | Relation: set.Relation, |
| 343 | }, nil |
| 344 | } |
| 345 | |
| 346 | func (m *Mapper) ToTree(ctx context.Context, tree *Tree) (res *ketoapi.Tree[*ketoapi.RelationTuple], err error) { |
| 347 | ctx, span := trace.SpanFromContext(ctx).TracerProvider().Tracer("keto/internal/relationtuple").Start(ctx, "Mapper.ToTree") |