Skip to content

Commit 0f31952

Browse files
committed
Merge branch 'main' of https://github.com/openhacku-saboten/OmnisCode-backend into feat/delete-user
2 parents f12363e + cf1bed3 commit 0f31952

File tree

2 files changed

+25
-67
lines changed

2 files changed

+25
-67
lines changed

controller/user.go

+13-16
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ func (ctrl *UserController) Get(c echo.Context) error {
3232
user, err := ctrl.uc.Get(c.Request().Context(), userID)
3333

3434
if err != nil {
35-
errNF := &entity.ErrNotFound{}
36-
if errors.As(err, errNF) {
37-
return echo.NewHTTPError(http.StatusNotFound, errNF.Error())
35+
if errors.Is(err, entity.ErrUserNotFound) {
36+
return echo.NewHTTPError(http.StatusNotFound, entity.ErrUserNotFound.Error())
3837
}
3938

4039
logger.Errorf("Unexpected error GET/user/{userID}: %s", err.Error())
@@ -108,13 +107,14 @@ func (ctrl *UserController) Create(c echo.Context) error {
108107
user.ID = userID
109108

110109
if err := ctrl.uc.Create(c.Request().Context(), user); err != nil {
111-
errDup := &entity.ErrDuplicated{}
112-
if errors.As(err, errDup) {
113-
return echo.NewHTTPError(http.StatusBadRequest, errDup.Error())
110+
if errors.Is(err, entity.ErrDuplicatedUser) {
111+
return echo.NewHTTPError(http.StatusBadRequest, entity.ErrDuplicatedUser.Error())
114112
}
115-
errEmpty := &entity.ErrEmpty{}
116-
if errors.As(err, errEmpty) {
117-
return echo.NewHTTPError(http.StatusBadRequest, errEmpty.Error())
113+
if errors.Is(err, entity.ErrDuplicatedTwitterID) {
114+
return echo.NewHTTPError(http.StatusBadRequest, entity.ErrDuplicatedTwitterID.Error())
115+
}
116+
if errors.Is(err, entity.ErrEmptyUserName) {
117+
return echo.NewHTTPError(http.StatusBadRequest, entity.ErrEmptyUserName.Error())
118118
}
119119
logger.Errorf("Unexpected error POST/user: %s", err.Error())
120120
return echo.NewHTTPError(http.StatusInternalServerError)
@@ -139,14 +139,11 @@ func (ctrl *UserController) Update(c echo.Context) error {
139139
user.ID = userID
140140

141141
if err := ctrl.uc.Update(c.Request().Context(), user); err != nil {
142-
errNF := &entity.ErrNotFound{}
143-
if errors.As(err, errNF) {
144-
return echo.NewHTTPError(http.StatusNotFound, errNF.Error())
142+
if errors.Is(err, entity.ErrUserNotFound) {
143+
return echo.NewHTTPError(http.StatusNotFound, entity.ErrUserNotFound.Error())
145144
}
146-
147-
errEmpty := &entity.ErrEmpty{}
148-
if errors.As(err, errEmpty) {
149-
return echo.NewHTTPError(http.StatusBadRequest, errEmpty.Error())
145+
if errors.Is(err, entity.ErrEmptyUserName) {
146+
return echo.NewHTTPError(http.StatusBadRequest, entity.ErrEmptyUserName.Error())
150147
}
151148
errDup := &entity.ErrDuplicated{}
152149
if errors.As(err, errDup) {

controller/user_test.go

+12-51
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ func TestUserController_Get(t *testing.T) {
4949
},
5050
},
5151
{
52-
name: "存在しないユーザーIDならErrNewErrorNotFound",
52+
name: "存在しないユーザーIDならErrUserNotFound",
5353
userID: "invalid-user-id",
5454
prepareMockUser: func(user *mock.MockUser) {
5555
user.EXPECT().FindByID(gomock.Any(), "invalid-user-id").Return(
5656
nil,
57-
entity.NewErrorNotFound("user"),
57+
entity.ErrUserNotFound,
5858
)
5959
},
6060
prepareMockAuth: func(auth *mock.MockAuth) {},
@@ -312,7 +312,7 @@ func TestUserController_GetPosts(t *testing.T) {
312312
`,
313313
},
314314
{
315-
name: "1つも投稿が存在しないならErrNewErrorNotFound",
315+
name: "1つも投稿が存在しないならErrUserNotFound",
316316
userID: "user-id2",
317317
prepareMockPost: func(ctx context.Context, uid string, post *mock.MockPost) {
318318
post.EXPECT().FindByUserID(ctx, uid).Return(nil, entity.NewErrorNotFound("post"))
@@ -449,7 +449,7 @@ func TestUserController_Create(t *testing.T) {
449449
user.EXPECT().Insert(
450450
gomock.Any(),
451451
entity.NewUser("user-id", "username", "profile", "twitter", ""),
452-
).Return(entity.NewErrorDuplicated("user ID"))
452+
).Return(entity.ErrDuplicatedUser)
453453
},
454454
wantErr: true,
455455
wantCode: 400,
@@ -466,7 +466,7 @@ func TestUserController_Create(t *testing.T) {
466466
user.EXPECT().Insert(
467467
gomock.Any(),
468468
entity.NewUser("user-id", "username", "profile", "twitter", ""),
469-
).Return(entity.NewErrorDuplicated("user TwitterID"))
469+
).Return(entity.ErrDuplicatedTwitterID)
470470
},
471471
wantErr: true,
472472
wantCode: 400,
@@ -580,7 +580,7 @@ func TestUserController_Update(t *testing.T) {
580580
wantCode: 400,
581581
},
582582
{
583-
name: "存在しないユーザーIDならErrNewErrorNotFound",
583+
name: "存在しないユーザーIDならErrUserNotFound",
584584
userID: "invalid-user-id",
585585
body: `{
586586
"name":"username",
@@ -590,7 +590,7 @@ func TestUserController_Update(t *testing.T) {
590590
prepareMockUser: func(user *mock.MockUser) {
591591
user.EXPECT().FindByID(gomock.Any(), "invalid-user-id").Return(
592592
nil,
593-
entity.NewErrorNotFound("user"),
593+
entity.ErrUserNotFound,
594594
)
595595
},
596596
prepareMockAuth: func(auth *mock.MockAuth) {},
@@ -622,7 +622,7 @@ func TestUserController_Update(t *testing.T) {
622622
for _, tt := range tests {
623623
t.Run(tt.name, func(t *testing.T) {
624624
e := echo.New()
625-
req := httptest.NewRequest("PUT", "/", strings.NewReader(tt.body))
625+
req := httptest.NewRequest("POST", "/", strings.NewReader(tt.body))
626626
req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON)
627627
rec := httptest.NewRecorder()
628628
c := e.NewContext(req, rec)
@@ -661,7 +661,6 @@ func TestUserController_Delete(t *testing.T) {
661661
tests := []struct {
662662
name string
663663
userID string
664-
body string
665664
prepareMockUser func(user *mock.MockUser)
666665
prepareMockAuth func(auth *mock.MockAuth)
667666
wantErr bool
@@ -670,55 +669,22 @@ func TestUserController_Delete(t *testing.T) {
670669
{
671670
name: "正しくユーザーを削除できる",
672671
userID: "user-id",
673-
body: `{
674-
"name":"name",
675-
"profile":"profile",
676-
"twitter_id":"twitter"
677-
}`,
678672
prepareMockUser: func(user *mock.MockUser) {
679673
user.EXPECT().Delete(
680674
gomock.Any(),
681-
entity.NewUser("user-id", "name", "profile", "twitter", ""),
675+
entity.NewUser("user-id", "", "", "", ""),
682676
).Return(nil)
683677
},
684678
wantErr: false,
685679
wantCode: 200,
686680
},
687-
{
688-
name: "不正なbodyならBadRequest",
689-
userID: "user-id",
690-
body: `{
691-
"aaa":"test"
692-
}`,
693-
prepareMockUser: func(user *mock.MockUser) {
694-
user.EXPECT().Delete(
695-
gomock.Any(),
696-
entity.NewUser("user-id", "", "", "", ""),
697-
).Return(entity.NewUser("user-id", "", "", "", "").IsValid())
698-
},
699-
wantErr: true,
700-
wantCode: 400,
701-
},
702-
{
703-
name: "bodyがJSON形式でないならBadRequest",
704-
userID: "user-id",
705-
body: `aaaaa`,
706-
prepareMockUser: func(user *mock.MockUser) {},
707-
wantErr: true,
708-
wantCode: 400,
709-
},
710681
{
711682
name: "存在しないユーザーIDならErrNewErrorNotFound",
712683
userID: "invalid-user-id",
713-
body: `{
714-
"name":"username",
715-
"profile":"profile",
716-
"twitter_id":"twitter"
717-
}`,
718684
prepareMockUser: func(user *mock.MockUser) {
719685
user.EXPECT().Delete(
720686
gomock.Any(),
721-
entity.NewUser("invalid-user-id", "username", "profile", "twitter", ""),
687+
entity.NewUser("invalid-user-id", "", "", "", ""),
722688
).Return(entity.NewErrorNotFound("user"))
723689
},
724690
prepareMockAuth: func(auth *mock.MockAuth) {},
@@ -728,15 +694,10 @@ func TestUserController_Delete(t *testing.T) {
728694
{
729695
name: "別のユーザが削除しようとしているならErrIsNotAuthorでStatusForbidden",
730696
userID: "user-id2",
731-
body: `{
732-
"name":"name",
733-
"profile":"profile",
734-
"twitter_id":"twitter"
735-
}`,
736697
prepareMockUser: func(user *mock.MockUser) {
737698
user.EXPECT().Delete(
738699
gomock.Any(),
739-
entity.NewUser("user-id2", "name", "profile", "twitter", ""),
700+
entity.NewUser("user-id2", "", "", "", ""),
740701
).Return(entity.ErrIsNotAuthor)
741702
},
742703
wantErr: true,
@@ -746,7 +707,7 @@ func TestUserController_Delete(t *testing.T) {
746707
for _, tt := range tests {
747708
t.Run(tt.name, func(t *testing.T) {
748709
e := echo.New()
749-
req := httptest.NewRequest("DELETE", "/", strings.NewReader(tt.body))
710+
req := httptest.NewRequest("DELETE", "/", nil)
750711
req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON)
751712
rec := httptest.NewRecorder()
752713
c := e.NewContext(req, rec)

0 commit comments

Comments
 (0)