v / examples / veb_orm_jwt / auth_controllers.v
19 lines · 15 sloc · 448 bytes · b474aa0faf8d055aaced80ed0687ac354d0864a0
Raw
1module main
2
3import veb
4import json
5
6@['/auth/login'; post]
7pub fn (mut app App) controller_auth(mut ctx Context) veb.Result {
8 body := json.decode(AuthRequestDto, ctx.req.data) or {
9 ctx.res.set_status(.bad_request)
10 return ctx.text('Failed to decode json, error: ${err}')
11 }
12
13 response := app.service_auth(body.username, body.password) or {
14 ctx.res.set_status(.bad_request)
15 return ctx.text('error: ${err}')
16 }
17
18 return ctx.json(response)
19}
20