From 3a2d701c2b3e1def8d1df10680c6343833960a7b Mon Sep 17 00:00:00 2001 From: FedotCompot Date: Tue, 4 Feb 2025 13:16:13 +0000 Subject: [PATCH] feat: quality of life string conversions for FgaObject --- utils.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/utils.go b/utils.go index 8a7ff1d..2448df2 100644 --- a/utils.go +++ b/utils.go @@ -14,7 +14,9 @@ package openfga import ( "encoding/json" + "fmt" "net/url" + "strings" "time" ) @@ -341,3 +343,20 @@ func IsWellFormedUri(uriString string) bool { return true } + +func (o FgaObject) String() string { + return fmt.Sprintf("%s:%s", o.Type, o.Id) +} + +func FgaObjectFromString(objectString string) (*FgaObject, error) { + if objectString == "" { + return nil, fmt.Errorf("failed parsing FgaObject, cannot build FgaObject from empty string") + } + objectTokens := strings.Split(objectString, ":") + if len(objectTokens) != 2 { + return nil, fmt.Errorf("failed parsing FgaObject, invalid FgaObject string") + } + objectType := objectTokens[0] + objectId := objectTokens[1] + return NewFgaObject(objectType, objectId), nil +}