generated from fahricansecer/boilerplate-be
71 lines
1.3 KiB
TypeScript
71 lines
1.3 KiB
TypeScript
import { IsEmail, IsString, MinLength, IsOptional } from 'class-validator';
|
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
|
|
export class RegisterDto {
|
|
@ApiProperty({ example: 'user@example.com' })
|
|
@IsEmail()
|
|
email: string;
|
|
|
|
@ApiProperty({ example: 'password123', minLength: 8 })
|
|
@IsString()
|
|
@MinLength(8)
|
|
password: string;
|
|
|
|
@ApiPropertyOptional({ example: 'John' })
|
|
@IsOptional()
|
|
@IsString()
|
|
firstName?: string;
|
|
|
|
@ApiPropertyOptional({ example: 'Doe' })
|
|
@IsOptional()
|
|
@IsString()
|
|
lastName?: string;
|
|
}
|
|
|
|
export class LoginDto {
|
|
@ApiProperty({ example: 'user@example.com' })
|
|
@IsEmail()
|
|
email: string;
|
|
|
|
@ApiProperty({ example: 'password123' })
|
|
@IsString()
|
|
password: string;
|
|
}
|
|
|
|
export class RefreshTokenDto {
|
|
@ApiProperty()
|
|
@IsString()
|
|
refreshToken: string;
|
|
}
|
|
|
|
export class UserInfoDto {
|
|
@ApiProperty()
|
|
id: string;
|
|
|
|
@ApiProperty()
|
|
email: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
firstName?: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
lastName?: string;
|
|
|
|
@ApiProperty()
|
|
roles: string[];
|
|
}
|
|
|
|
export class TokenResponseDto {
|
|
@ApiProperty()
|
|
accessToken: string;
|
|
|
|
@ApiProperty()
|
|
refreshToken: string;
|
|
|
|
@ApiProperty()
|
|
expiresIn: number;
|
|
|
|
@ApiProperty({ type: UserInfoDto })
|
|
user: UserInfoDto;
|
|
}
|