@@ -2,13 +2,10 @@ package v1
2
2
3
3
import (
4
4
"context"
5
- "errors"
6
5
"net/http"
7
- "strconv"
8
6
"time"
9
7
10
8
"github.com/DoWithLogic/golang-clean-architecture/internal/users/dtos"
11
- "github.com/DoWithLogic/golang-clean-architecture/internal/users/entities"
12
9
usecases "github.com/DoWithLogic/golang-clean-architecture/internal/users/usecase"
13
10
"github.com/DoWithLogic/golang-clean-architecture/pkg/middleware"
14
11
"github.com/DoWithLogic/golang-clean-architecture/pkg/otel/zerolog"
@@ -36,10 +33,6 @@ const (
36
33
BooleanTextFalse = "false"
37
34
)
38
35
39
- var (
40
- ErrInvalidIsActive = errors .New ("invalid is_active" )
41
- )
42
-
43
36
func NewHandlers (uc usecases.Usecase , log * zerolog.Logger ) Handlers {
44
37
return & handlers {uc , log }
45
38
}
@@ -121,18 +114,20 @@ func (h *handlers) UserDetail(c echo.Context) error {
121
114
func (h * handlers ) UpdateUser (c echo.Context ) error {
122
115
var (
123
116
ctx , cancel = context .WithTimeout (c .Request ().Context (), time .Duration (30 * time .Second ))
117
+ identity = c .Get ("identity" ).(* middleware.CustomClaims )
124
118
request dtos.UpdateUserRequest
125
119
)
126
120
defer cancel ()
127
121
128
- request .UserID = c .Get ("identity" ).(entities.Identity ).UserID
129
-
130
122
if err := c .Bind (& request ); err != nil {
131
123
h .log .Z ().Err (err ).Msg ("[handlers]UpdateUser.Bind" )
132
124
133
125
return c .JSON (http .StatusBadRequest , response .NewResponseError (http .StatusBadRequest , response .MsgFailed , err .Error ()))
134
126
}
135
127
128
+ request .UserID = identity .UserID
129
+ request .UpdateBy = identity .Email
130
+
136
131
if err := request .Validate (); err != nil {
137
132
h .log .Z ().Err (err ).Msg ("[handlers]UpdateUser.Validate" )
138
133
@@ -149,38 +144,21 @@ func (h *handlers) UpdateUser(c echo.Context) error {
149
144
func (h * handlers ) UpdateUserStatus (c echo.Context ) error {
150
145
var (
151
146
ctx , cancel = context .WithTimeout (c .Request ().Context (), time .Duration (30 * time .Second ))
152
- payload dtos.UpdateUserStatusPayload
147
+ identity = c .Get ("identity" ).(* middleware.CustomClaims )
148
+ request = dtos.UpdateUserStatusRequest {UserID : identity .UserID , UpdateBy : identity .Email }
153
149
)
154
150
defer cancel ()
155
151
156
- userID , err := strconv .ParseInt (c .Param ("id" ), 10 , 64 )
157
- if err != nil {
158
- h .log .Z ().Err (err ).Msg ("[handlers]UpdateUser.ParseParam" )
159
-
160
- return c .JSON (http .StatusBadRequest , response .NewResponseError (
161
- http .StatusBadRequest ,
162
- response .MsgFailed ,
163
- err .Error ()),
164
- )
165
- }
166
-
167
- switch c .QueryParam ("is_active" ) {
168
- case BooleanTextFalse :
169
- payload .IsActive = false
170
- case BooleanTextTrue :
171
- payload .IsActive = true
172
- default :
173
- return c .JSON (http .StatusBadRequest , response .NewResponseError (http .StatusBadRequest , response .MsgFailed , ErrInvalidIsActive .Error ()))
152
+ if err := c .Bind (& request ); err != nil {
153
+ return c .JSON (http .StatusBadRequest , response .NewResponseError (http .StatusBadRequest , response .MsgFailed , err .Error ()))
174
154
}
175
155
176
- argsUpdateUserStatus := entities.UpdateUserStatus {
177
- UserID : userID ,
178
- IsActive : payload .IsActive ,
156
+ if err := request .Validate (); err != nil {
157
+ return c .JSON (http .StatusBadRequest , response .NewResponseError (http .StatusBadRequest , response .MsgFailed , err .Error ()))
179
158
}
180
159
181
- err = h .uc .UpdateStatus (ctx , argsUpdateUserStatus )
182
- if err != nil {
183
- return c .JSON (http .StatusBadRequest , response .NewResponseError (http .StatusInternalServerError , response .MsgFailed , err .Error ()))
160
+ if err := h .uc .UpdateStatus (ctx , request ); err != nil {
161
+ return c .JSON (http .StatusInternalServerError , response .NewResponseError (http .StatusInternalServerError , response .MsgFailed , err .Error ()))
184
162
}
185
163
186
164
return c .JSON (http .StatusOK , response .NewResponse (http .StatusOK , response .MsgSuccess , nil ))
0 commit comments