diff --git a/internal/api/user.go b/internal/api/user.go index c42b24b1..a2ace7d6 100644 --- a/internal/api/user.go +++ b/internal/api/user.go @@ -40,10 +40,10 @@ func (h *handler) GetUser(c *gin.Context) { func (h *handler) PostUser(c *gin.Context) { var body struct { - Email string `json:"email,omitempty" binding:"required" validate:"email"` - Password string `json:"password,omitempty" binding:"required" validate:"min=10"` - IsSuperAdmin bool `json:"isSuperAdmin,omitempty"` - Tickers []int `json:"tickers,omitempty"` + Email string `json:"email,omitempty" binding:"required" validate:"email"` + Password string `json:"password,omitempty" binding:"required" validate:"min=10"` + IsSuperAdmin bool `json:"isSuperAdmin,omitempty"` + Tickers []storage.Ticker `json:"tickers,omitempty"` } err := c.Bind(&body) @@ -57,15 +57,8 @@ func (h *handler) PostUser(c *gin.Context) { c.JSON(http.StatusBadRequest, response.ErrorResponse(response.CodeDefault, response.StorageError)) return } - - tickers, err := h.storage.FindTickersByIDs(body.Tickers) - if err != nil { - c.JSON(http.StatusBadRequest, response.ErrorResponse(response.CodeDefault, response.StorageError)) - return - } - user.IsSuperAdmin = body.IsSuperAdmin - user.Tickers = tickers + user.Tickers = body.Tickers err = h.storage.SaveUser(&user) if err != nil { diff --git a/internal/api/user_test.go b/internal/api/user_test.go index f830997a..ece7eadf 100644 --- a/internal/api/user_test.go +++ b/internal/api/user_test.go @@ -176,27 +176,6 @@ func TestPostUserStorageError(t *testing.T) { c.Request.Header.Add("Content-Type", "application/json") c.Set("me", storage.User{ID: 1, IsSuperAdmin: true}) s := &storage.MockStorage{} - s.On("FindTickersByIDs", mock.Anything).Return([]storage.Ticker{}, nil) - s.On("SaveUser", mock.Anything).Return(errors.New("storage error")) - h := handler{ - storage: s, - config: config.NewConfig(), - } - - h.PostUser(c) - - assert.Equal(t, http.StatusBadRequest, w.Code) -} - -func TestPostUserStorageError2(t *testing.T) { - w := httptest.NewRecorder() - c, _ := gin.CreateTestContext(w) - json := `{"email":"louis@systemli.org","password":"password1234"}` - c.Request = httptest.NewRequest(http.MethodPost, "/v1/admin/users", strings.NewReader(json)) - c.Request.Header.Add("Content-Type", "application/json") - c.Set("me", storage.User{ID: 1, IsSuperAdmin: true}) - s := &storage.MockStorage{} - s.On("FindTickersByIDs", mock.Anything).Return([]storage.Ticker{}, errors.New("storage error")) s.On("SaveUser", mock.Anything).Return(errors.New("storage error")) h := handler{ storage: s, @@ -216,7 +195,6 @@ func TestPostUser(t *testing.T) { c.Request.Header.Add("Content-Type", "application/json") c.Set("me", storage.User{ID: 1, IsSuperAdmin: true}) s := &storage.MockStorage{} - s.On("FindTickersByIDs", mock.Anything).Return([]storage.Ticker{}, nil) s.On("SaveUser", mock.Anything).Return(nil) h := handler{ storage: s,