From 6cb01090d0f640d25728495f0a80c756ee43e985 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Fri, 4 Dec 2020 22:43:41 +0100 Subject: [PATCH] working on AuthController + CreateAuth ref #12 --- src/controllers/AuthController.ts | 26 ++++++++++++++++++++++++++ src/models/creation/CreateAuth.ts | 7 +++++-- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/controllers/AuthController.ts diff --git a/src/controllers/AuthController.ts b/src/controllers/AuthController.ts new file mode 100644 index 0000000..8a39093 --- /dev/null +++ b/src/controllers/AuthController.ts @@ -0,0 +1,26 @@ +import { Body, JsonController, Post } from 'routing-controllers'; +import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; +import { InvalidCredentialsError } 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) + @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 + } +} diff --git a/src/models/creation/CreateAuth.ts b/src/models/creation/CreateAuth.ts index 7f20dbe..4e28229 100644 --- a/src/models/creation/CreateAuth.ts +++ b/src/models/creation/CreateAuth.ts @@ -1,7 +1,9 @@ import { IsEmail, IsOptional, IsString } from 'class-validator'; +import { getConnectionManager } from 'typeorm'; import { PasswordNeededError } from '../../errors/AuthError'; import { UsernameOrEmailNeededError } from '../../errors/UserErrors'; import { Auth } from '../entities/Auth'; +import { User } from '../entities/User'; export class CreateAuth { @IsOptional() @@ -22,9 +24,10 @@ export class CreateAuth { if (!this.password) { throw new PasswordNeededError() } - // const found = await getConnectionManager().get().getRepository(UserGroup).find({ id: g }); + const found = await getConnectionManager().get().getRepository(User).find({ where: [{ username: this.username }, { email: this.email }] }); + console.log(found); - // TODO: jwt creation + return + // TODO: jwt creation newAuth.access_token = "" newAuth.refresh_token = "" newAuth.access_token_expires_at = 1587349200