@@ -17,6 +17,7 @@ limitations under the License.
17
17
package store
18
18
19
19
import (
20
+ "context"
20
21
"fmt"
21
22
"os"
22
23
"path"
@@ -44,21 +45,39 @@ func importStore(
44
45
maxParallelRequests int ,
45
46
fileName string ,
46
47
) (* CreateStoreAndModelResponse , error ) {
47
- var err error
48
- var response * CreateStoreAndModelResponse //nolint:wsl
49
- if storeID == "" { //nolint:wsl, nestif
48
+ response := & CreateStoreAndModelResponse {}
49
+
50
+ if storeID == "" { //nolint:nestif
50
51
storeDataName := storeData .Name
51
52
if storeDataName == "" {
52
53
storeDataName = strings .TrimSuffix (path .Base (fileName ), ".fga.yaml" )
53
54
}
54
- createStoreAndModelResponse , err := CreateStoreWithModel (clientConfig , storeDataName , //nolint:wsl
55
- storeData .Model , format )
56
- response = createStoreAndModelResponse
57
- if err != nil { //nolint:wsl
55
+
56
+ createStoreAndModelResponse , err := CreateStoreWithModel (
57
+ clientConfig ,
58
+ storeDataName ,
59
+ storeData .Model ,
60
+ format ,
61
+ )
62
+ if err != nil {
58
63
return nil , err
59
64
}
60
- clientConfig .StoreID = createStoreAndModelResponse .Store .Id //nolint:wsl
65
+
66
+ response = createStoreAndModelResponse
67
+ clientConfig .StoreID = createStoreAndModelResponse .Store .Id
61
68
} else {
69
+ store , err := fgaClient .GetStore (context .Background ()).Execute ()
70
+ if err != nil {
71
+ return nil , err //nolint:wrapcheck
72
+ }
73
+
74
+ response .Store = client.ClientCreateStoreResponse {
75
+ CreatedAt : store .GetCreatedAt (),
76
+ Id : store .GetId (),
77
+ Name : store .GetName (),
78
+ UpdatedAt : store .GetUpdatedAt (),
79
+ }
80
+
62
81
authModel := authorizationmodel.AuthzModel {}
63
82
clientConfig .StoreID = storeID
64
83
@@ -67,13 +86,15 @@ func importStore(
67
86
return nil , err //nolint:wrapcheck
68
87
}
69
88
70
- _ , err := model .Write (fgaClient , authModel )
89
+ modelWriteRes , err := model .Write (fgaClient , authModel )
71
90
if err != nil {
72
91
return nil , fmt .Errorf ("failed to write model due to %w" , err )
73
92
}
93
+
94
+ response .Model = modelWriteRes
74
95
}
75
96
76
- fgaClient , err = clientConfig .GetFgaClient ()
97
+ fgaClient , err : = clientConfig .GetFgaClient ()
77
98
if err != nil {
78
99
return nil , fmt .Errorf ("failed to initialize FGA Client due to %w" , err )
79
100
}
0 commit comments