36 lines
844 B
TypeScript
36 lines
844 B
TypeScript
|
|
import { IsString, IsNotEmpty, Length, IsEnum } from 'class-validator';
|
||
|
|
import { Expose, Transform } from 'class-transformer';
|
||
|
|
|
||
|
|
export enum UserRole {
|
||
|
|
Admin = 'admin',
|
||
|
|
User = 'user',
|
||
|
|
}
|
||
|
|
|
||
|
|
export class AuthDto {
|
||
|
|
@IsNotEmpty({ message: 'Username wajib diisi' })
|
||
|
|
@IsString({ message: 'Username harus berupa string' })
|
||
|
|
@Length(1, 100, { message: 'Username maksimal 100 karakter' })
|
||
|
|
username: string;
|
||
|
|
|
||
|
|
@IsNotEmpty({ message: 'Password wajib diisi' })
|
||
|
|
@IsString({ message: 'Password harus berupa string' })
|
||
|
|
@Length(6, undefined, { message: 'Password minimal 6 karakter' })
|
||
|
|
password: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
export class AuthDtoResponse {
|
||
|
|
@Expose()
|
||
|
|
@Transform(({ value }: { value: bigint }) => value.toString())
|
||
|
|
id: bigint;
|
||
|
|
|
||
|
|
@Expose()
|
||
|
|
username: string;
|
||
|
|
|
||
|
|
@Expose()
|
||
|
|
@IsEnum(UserRole)
|
||
|
|
role: UserRole;
|
||
|
|
|
||
|
|
@Expose()
|
||
|
|
token: string;
|
||
|
|
}
|