Skip to content

Commit d52e1b0

Browse files
heiytorotavio
authored andcommitted
refactor(api,cli): change SystemSet to accept full model
- Change SystemSet signature to receive *models.System instead of (key, value)
1 parent b95d781 commit d52e1b0

File tree

7 files changed

+31
-31
lines changed

7 files changed

+31
-31
lines changed

api/services/setup.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ type SetupService interface {
2626
}
2727

2828
func (s *service) Setup(ctx context.Context, req requests.Setup) error {
29-
if system, err := s.store.SystemGet(ctx); err != nil || system.Setup {
29+
system, err := s.store.SystemGet(ctx)
30+
if err != nil || system.Setup {
3031
return NewErrSetupForbidden(err)
3132
}
3233

@@ -98,7 +99,8 @@ func (s *service) Setup(ctx context.Context, req requests.Setup) error {
9899
return NewErrNamespaceDuplicated(err)
99100
}
100101

101-
if err := s.store.SystemSet(ctx, "setup", true); err != nil { //nolint:revive
102+
system.Setup = true
103+
if err := s.store.SystemSet(ctx, system); err != nil {
102104
return err
103105
}
104106

api/services/setup_test.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -302,19 +302,17 @@ func TestSetup(t *testing.T) {
302302
Password: "secret",
303303
},
304304
requiredMocks: func() {
305-
storeMock.On("SystemGet", ctx).Return(&models.System{
306-
Setup: false,
307-
}, nil).Once()
305+
initialSystem := &models.System{Setup: false}
306+
finalSystem := &models.System{Setup: true}
308307

309-
clockMock.On("Now").Return(now).Twice()
310-
uuidMock := &uuidmock.Uuid{}
311-
uuidMock.On("Generate").Return("random_uuid").Once()
308+
storeMock.On("SystemGet", ctx).Return(initialSystem, nil).Once()
312309

313-
hashMock.
314-
On("Do", "secret").
310+
hashMock.On("Do", "secret").
315311
Return("$2a$10$V/6N1wsjheBVvWosPfv02uf4WAOb9lmp8YVVCIa2UYuFV4OJby7Yi", nil).
316312
Once()
317313

314+
clockMock.On("Now").Return(now).Twice()
315+
318316
user := &models.User{
319317
Origin: models.UserOriginLocal,
320318
Status: models.UserStatusConfirmed,
@@ -356,10 +354,8 @@ func TestSetup(t *testing.T) {
356354
},
357355
CreatedAt: now,
358356
}
359-
storeMock.On("UserCreate", ctx, user).Return("000000000000000000000000", nil).Once()
360357
storeMock.On("NamespaceCreate", ctx, namespace).Return(tenant, nil).Once()
361-
362-
storeMock.On("SystemSet", ctx, "setup", true).Return(nil).Once()
358+
storeMock.On("SystemSet", ctx, finalSystem).Return(nil).Once()
363359
},
364360
expected: nil,
365361
},

api/store/mocks/store.go

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/store/mongo/system.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,15 @@ func (s *Store) SystemGet(ctx context.Context) (*models.System, error) {
4040
return system, nil
4141
}
4242

43-
func (s *Store) SystemSet(ctx context.Context, key string, value any) error {
43+
func (s *Store) SystemSet(ctx context.Context, system *models.System) error {
4444
upsert := true
45-
46-
_, err := s.db.Collection(SystemCollection).UpdateOne(ctx, bson.M{}, bson.M{
47-
"$set": bson.M{
48-
key: value,
49-
},
50-
}, &options.UpdateOptions{
51-
Upsert: &upsert,
52-
})
45+
_, err := s.db.Collection(SystemCollection).UpdateOne(ctx, bson.M{}, bson.M{"$set": system}, &options.UpdateOptions{Upsert: &upsert})
5346
if err != nil {
5447
return FromMongoError(err)
5548
}
5649

5750
if err := s.cache.Delete(ctx, SystemCollection); err != nil {
58-
log.WithField(SystemCollection, key).Warn("failed to delete system from cache")
51+
log.WithField("system", system).Warn("failed to delete system from cache")
5952
}
6053

6154
return nil

api/store/system.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ import (
88

99
type SystemStore interface {
1010
SystemGet(ctx context.Context) (*models.System, error)
11-
SystemSet(ctx context.Context, key string, value any) error
11+
SystemSet(ctx context.Context, system *models.System) error
1212
}

cli/services/users.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,13 @@ func (s *service) UserCreate(ctx context.Context, input *inputs.UserCreate) (*mo
6868
return nil, ErrCreateNewUser
6969
}
7070

71-
s.store.SystemSet(ctx, "setup", true) //nolint:errcheck
71+
system, err := s.store.SystemGet(ctx)
72+
if err != nil {
73+
system = &models.System{}
74+
}
75+
76+
system.Setup = true
77+
_ = s.store.SystemSet(ctx, system)
7278

7379
return user, nil
7480
}

cli/services/users_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,11 @@ func TestUserCreate(t *testing.T) {
185185
AuthMethods: []models.UserAuthMethod{models.UserAuthMethodLocal},
186186
},
187187
}
188+
188189
mock.On("UserCreate", ctx, user).Return("000000000000000000000000", nil).Once()
189-
mock.On("SystemSet", ctx, "setup", true).Return(nil).Once()
190+
191+
mock.On("SystemGet", ctx).Return(&models.System{Setup: false}, nil).Once()
192+
mock.On("SystemSet", ctx, &models.System{Setup: true}).Return(nil).Once()
190193
},
191194
expected: Expected{&models.User{
192195
Origin: models.UserOriginLocal,

0 commit comments

Comments
 (0)