4
4
"fmt"
5
5
"govel/app/exception"
6
6
"govel/app/helper"
7
+ "govel/app/http/middleware"
7
8
"govel/app/model"
8
9
"govel/app/service"
9
10
"strconv"
@@ -26,9 +27,10 @@ func (controller *UserController) Route(route fiber.Router) {
26
27
group .Get ("/search/:query" , controller .Search )
27
28
28
29
group .Post ("/login" , controller .Login )
30
+ group .Post ("/refresh-token" , controller .RefreshToken ).Name ("refresh-token" )
29
31
group .Post ("/register" , controller .Register )
30
- group .Post ("/update/:id" , controller .Update )
31
- group .Post ("/delete/:id" , controller .Delete )
32
+ group .Post ("/update/:id" , middleware . Authenticate , controller .Update )
33
+ group .Post ("/delete/:id" , middleware . Authenticate , controller .Delete )
32
34
33
35
// Add this endpoint at the bottom to avoid the path conflict
34
36
group .Get ("/:id" , controller .Show )
@@ -97,14 +99,41 @@ func (ctx *UserController) Login(c *fiber.Ctx) error {
97
99
98
100
token := helper .MakeECDSAToken (& data , jwt .SigningMethodES256 )
99
101
102
+ refreshTokenURL , err := c .GetRouteURL ("refresh-token" , nil )
103
+ exception .PanicIfNeeded (err )
104
+
105
+ return c .Status (200 ).JSON (model.WebResponse {
106
+ Code : 200 ,
107
+ Message : "OK" ,
108
+ Data : model.TokenResponse {
109
+ Type : "bearer" ,
110
+ Alg : "es256" ,
111
+ RefreshTokenURL : c .BaseURL () + refreshTokenURL ,
112
+ Token : token ,
113
+ Claims : data ,
114
+ },
115
+ })
116
+ }
117
+
118
+ func (ctx * UserController ) RefreshToken (c * fiber.Ctx ) error {
119
+ data := ctx .service .RefreshToken (model.RefreshTokenUserRequest {
120
+ Token : c .FormValue ("token" ),
121
+ })
122
+
123
+ token := helper .MakeECDSAToken (& data , jwt .SigningMethodES256 )
124
+
125
+ refreshTokenURL , err := c .GetRouteURL ("refresh-token" , nil )
126
+ exception .PanicIfNeeded (err )
127
+
100
128
return c .Status (200 ).JSON (model.WebResponse {
101
129
Code : 200 ,
102
130
Message : "OK" ,
103
131
Data : model.TokenResponse {
104
- Type : "bearer" ,
105
- Alg : "es256" ,
106
- Token : token ,
107
- Claims : data ,
132
+ Type : "bearer" ,
133
+ Alg : "es256" ,
134
+ RefreshTokenURL : c .BaseURL () + refreshTokenURL ,
135
+ Token : token ,
136
+ Claims : data ,
108
137
},
109
138
})
110
139
}
@@ -144,9 +173,8 @@ func (ctx *UserController) Update(c *fiber.Ctx) error {
144
173
id , err := c .ParamsInt ("id" )
145
174
exception .PanicIfNeeded (err )
146
175
147
- fmt .Printf ("Value name: %s" , c .Params ("name" ))
148
-
149
176
data := ctx .service .Update (model.UpdateUserRequest {
177
+ Token : c .FormValue ("token" ),
150
178
Id : id ,
151
179
Name : c .FormValue ("name" ),
152
180
Location : c .FormValue ("location" ),
@@ -166,7 +194,8 @@ func (ctx *UserController) Delete(c *fiber.Ctx) error {
166
194
exception .PanicIfNeeded (err )
167
195
168
196
data := ctx .service .Delete (model.DeleteUserRequest {
169
- Id : id ,
197
+ Token : c .FormValue ("token" ),
198
+ Id : id ,
170
199
})
171
200
172
201
// Return non pagination response
0 commit comments