package domain import ( "net/url" "strings" v1 "github.com/authzed/authzed-go/proto/authzed/api/v1" ) type GlobalID string func (self GlobalID) String() string { return string(self) } func (self GlobalID) ToObjectReference() *v1.ObjectReference { url, err := url.Parse(self.String()) if err != nil { return &v1.ObjectReference{} } segments := strings.SplitN(url.Path, "/", 3) if len(segments) < 3 { return &v1.ObjectReference{} } return &v1.ObjectReference{ ObjectType: strings.ToLower(segments[1]), ObjectId: segments[2], } }