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() @IsString() username?: string; @IsString() password: string; @IsEmail() @IsString() email?: string; public async toAuth(): Promise { let newAuth: Auth = new Auth(); if (this.email === undefined && this.username === undefined) { throw new UsernameOrEmailNeededError(); } if (!this.password) { throw new PasswordNeededError() } const found = await getConnectionManager().get().getRepository(User).find({ where: [{ username: this.username }, { email: this.email }] }); console.log(found); // TODO: jwt creation newAuth.access_token = "" newAuth.refresh_token = "" newAuth.access_token_expires_at = 1587349200 newAuth.refresh_token_expires_at = 1587349200 console.log(newAuth) return newAuth; } }