30 lines
930 B
TypeScript
30 lines
930 B
TypeScript
import { Body, JsonController, Post } from 'routing-controllers';
|
|
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
|
|
import { InvalidCredentialsError, PasswordNeededError, UsernameOrEmailNeededError } from '../errors/AuthError';
|
|
import { UserNotFoundError } from '../errors/UserErrors';
|
|
import { CreateAuth } from '../models/creation/CreateAuth';
|
|
|
|
@JsonController('/auth')
|
|
export class AuthController {
|
|
constructor() {
|
|
}
|
|
|
|
@Post("/login")
|
|
@ResponseSchema(InvalidCredentialsError)
|
|
@ResponseSchema(UserNotFoundError)
|
|
@ResponseSchema(UsernameOrEmailNeededError)
|
|
@ResponseSchema(PasswordNeededError)
|
|
@ResponseSchema(InvalidCredentialsError)
|
|
@OpenAPI({ description: 'Create a new access token object' })
|
|
async post(@Body({ validate: true }) createAuth: CreateAuth) {
|
|
let auth;
|
|
try {
|
|
auth = await createAuth.toAuth();
|
|
console.log(auth);
|
|
} catch (error) {
|
|
return error;
|
|
}
|
|
return auth
|
|
}
|
|
}
|