Skip to content

Commit c56b431

Browse files
committed
organize success response
1 parent c46f944 commit c56b431

File tree

3 files changed

+29
-30
lines changed

3 files changed

+29
-30
lines changed

internal/handlers/models.go

Lines changed: 0 additions & 5 deletions
This file was deleted.

internal/handlers/response.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package handlers
2+
3+
type successResponse struct {
4+
Data interface{} `json:"data"`
5+
}
6+
7+
func JsonSuccessResponse(data interface{}) interface{} {
8+
return successResponse{
9+
Data: data,
10+
}
11+
}

internal/handlers/user.go

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,32 @@ type UsersData struct {
2525
Users *[]PublicUser `json:"users"`
2626
}
2727

28+
type UserData struct {
29+
User *PublicUser `json:"user"`
30+
}
31+
32+
type CreateUserRequest struct {
33+
Email string `json:"email"`
34+
Password string `json:"password"`
35+
}
36+
2837
func GetUsers(c echo.Context) error {
2938
cc := c.(*middleware.CustomContext)
3039
ctx := cc.Request().Context()
3140
var users []PublicUser
32-
res := SuccessResponse{
33-
Data: UsersData{Users: &users},
34-
}
3541
err := boilmodels.Users().Bind(ctx, cc.DB, &users)
3642
if err != nil {
3743
c.Error(err)
3844
return err
3945
}
40-
return c.JSON(http.StatusOK, res)
41-
}
42-
43-
type UserData struct {
44-
User *PublicUser `json:"user"`
46+
return c.JSON(http.StatusOK, JsonSuccessResponse(UsersData{
47+
Users: &users,
48+
}))
4549
}
4650

4751
func GetUser(c echo.Context) error {
4852
cc := c.(*middleware.CustomContext)
4953
ctx := cc.Request().Context()
50-
res := SuccessResponse{
51-
Data: UserData{},
52-
}
5354
var id int
5455
err := echo.PathParamsBinder(c).
5556
Int("id", &id).
@@ -72,22 +73,15 @@ func GetUser(c echo.Context) error {
7273
c.Error(err)
7374
return err
7475
}
75-
res.Data = &users[0]
7676

77-
return c.JSON(http.StatusOK, res)
78-
}
79-
80-
type CreateUserRequest struct {
81-
Email string `json:"email"`
82-
Password string `json:"password"`
77+
return c.JSON(http.StatusOK, JsonSuccessResponse(UserData{
78+
User: users[0],
79+
}))
8380
}
8481

8582
func CreateUser(c echo.Context) error {
8683
cc := c.(*middleware.CustomContext)
8784
ctx := cc.Request().Context()
88-
res := SuccessResponse{
89-
Data: UserData{},
90-
}
9185
req := new(CreateUserRequest)
9286
if err := c.Bind(req); err != nil {
9387
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
@@ -106,11 +100,10 @@ func CreateUser(c echo.Context) error {
106100
CreatedAt: u.CreatedAt,
107101
UpdatedAt: u.UpdatedAt,
108102
}
109-
res.Data = UserData{
110-
User: &pu,
111-
}
112103

113-
return c.JSON(http.StatusOK, res)
104+
return c.JSON(http.StatusOK, JsonSuccessResponse(UserData{
105+
User: &pu,
106+
}))
114107
}
115108

116109
func PatchUser(c echo.Context) error {

0 commit comments

Comments
 (0)