BE/src/auth/auth.dto.ts

64 lines
1.5 KiB
TypeScript

import { ApiProperty, IntersectionType } from '@nestjs/swagger';
import { Transform, Type } from 'class-transformer';
import { IsEmail, IsEnum, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator';
import { APPLICATIONNAME_DTO } from 'src/dto/property.dto';
export class AuthLoginDTO {
@ApiProperty({ required: true })
@IsString()
P_EMAILADDR: string;
@ApiProperty({ required: true })
@IsString()
P_PASSWORD: string;
}
export class AuthLoginOnlyDTO extends IntersectionType(AuthLoginDTO, APPLICATIONNAME_DTO) { }
export enum MailTypeDTO {
REGISTER_CLIENT = "REGISTER_CLIENT",
REGISTER_SP = "REGISTER_SP",
REGISTER_USCIB = "REGISTER_USCIB",
FORGOT_PASSWORD = "FORGOT_PASSWORD"
// DEMO_MAIL = "DEMO_MAIL"
}
export class SendMailDTO {
@ApiProperty({ required: true, example: 'user@example.com' })
@IsEmail({}, { message: 'P_TO must be a valid email address' })
P_TO: string;
@ApiProperty({ enum: MailTypeDTO, required: true })
@Transform(({ value }) => value?.toUpperCase())
@IsEnum(MailTypeDTO, { message: "Invalid P_MAIL_TYPE" })
P_MAIL_TYPE: MailTypeDTO;
}
export class MailContextDTO {
@ApiProperty({ required: true })
@IsString()
to: string;
@ApiProperty({ required: true })
@IsString()
url: string;
}
export class MailTemplateDTO {
@ApiProperty({ required: true })
@IsString()
to: string;
@ApiProperty({ required: true })
@IsString()
subject: string;
@ApiProperty({ required: true })
@IsString()
templateName: string;
@IsOptional()
@IsObject()
variables?: Record<string, any>;
}