|
1 | | -import { User, LoginResponse } from '@launchpad-ts/shared-types' |
2 | | -import { UserEntity, userSchema } from '../entity/user' |
| 1 | +import { LoginResponse,User } from '@launchpad-ts/shared-types' |
3 | 2 | import { |
| 3 | + body, |
| 4 | + Context, |
4 | 5 | request, |
5 | 6 | responsesAll, |
6 | 7 | summary, |
7 | 8 | swaggerClass, |
8 | 9 | swaggerProperty, |
9 | 10 | tagsAll, |
10 | | - body, |
11 | | - Context, |
12 | 11 | } from 'koa-swagger-decorator' |
13 | 12 | import { getManager } from 'typeorm' |
14 | | -import passwordHelper from '../helper/password' |
| 13 | + |
| 14 | +import { UserEntity, userSchema } from '../entity/user' |
15 | 15 | import jwtHelper from '../helper/jwt' |
| 16 | +import passwordHelper from '../helper/password' |
16 | 17 |
|
17 | 18 | @swaggerClass() |
18 | 19 | export class LoginRequest { |
@@ -56,14 +57,15 @@ export default class UserController { |
56 | 57 | public static async login(ctx: Context): Promise<void> { |
57 | 58 | const userRepository = getManager().getRepository(UserEntity) |
58 | 59 | const body = ctx.request.body |
| 60 | + const { email, password } = body as { email: string, password: string }; |
59 | 61 |
|
60 | 62 | const [user]: User[] = await userRepository.find({ |
61 | | - where: { email: body.email }, |
| 63 | + where: { email: email }, |
62 | 64 | }) |
63 | 65 | const valid = |
64 | | - user && (await passwordHelper.validatePassword(user, body.password)) |
| 66 | + user && (await passwordHelper.validatePassword(user, password)) |
65 | 67 | if (valid) { |
66 | | - const { password, ...userWithoutPassword } = user |
| 68 | + const { ...userWithoutPassword } = user |
67 | 69 | const accessToken = jwtHelper.getAccessToken(user); |
68 | 70 | ctx.status = 200 |
69 | 71 | ctx.body = <LoginResponse>{ |
|
0 commit comments