swagger:route GET /relation-tuples/expand permission expandPermissions # Expand a Relationship into permissions. Use this endpoint to expand a relationship tuple into permissions. Consumes: - application/x-www-form-urlencoded Produces: - application/json Schemes: http, https Responses:
(w http.ResponseWriter, r *http.Request)
| 86 | // Extensions: |
| 87 | // x-ory-ratelimit-bucket: keto-admin-medium |
| 88 | func (h *Handler) getExpand(w http.ResponseWriter, r *http.Request) { |
| 89 | maxDepth, err := x.GetMaxDepthFromQuery(r.URL.Query()) |
| 90 | if err != nil { |
| 91 | h.d.Writer().WriteError(w, r, herodot.ErrBadRequest.WithError(err.Error())) |
| 92 | return |
| 93 | } |
| 94 | |
| 95 | subSet := (&ketoapi.SubjectSet{}).FromURLQuery(r.URL.Query()) |
| 96 | internal, err := h.d.ReadOnlyMapper().FromSubjectSet(r.Context(), subSet) |
| 97 | if err != nil { |
| 98 | h.d.Writer().WriteError(w, r, err) |
| 99 | return |
| 100 | } |
| 101 | |
| 102 | res, err := h.d.ExpandEngine().BuildTree(r.Context(), internal, maxDepth) |
| 103 | if err != nil { |
| 104 | h.d.Writer().WriteError(w, r, err) |
| 105 | return |
| 106 | } |
| 107 | if res == nil { |
| 108 | h.d.Writer().Write(w, r, herodot.ErrNotFound.WithError("no relation tuple found")) |
| 109 | return |
| 110 | } |
| 111 | |
| 112 | tree, err := h.d.ReadOnlyMapper().ToTree(r.Context(), res) |
| 113 | if err != nil { |
| 114 | h.d.Writer().WriteError(w, r, err) |
| 115 | return |
| 116 | } |
| 117 | |
| 118 | h.d.Writer().Write(w, r, tree) |
| 119 | } |
| 120 | |
| 121 | func (h *Handler) Expand(ctx context.Context, req *rts.ExpandRequest) (*rts.ExpandResponse, error) { |
| 122 | var subSet *ketoapi.SubjectSet |
nothing calls this directly
no test coverage detected