Untitled

 avatar
unknown
plain_text
a year ago
1.2 kB
7
Indexable
  @UseBefore(ValidationMiddleware(CreateHomeFormSchema))
  public createHomeInfo(
    @Body() body: HomeInsuranceFormBody
  ): any {
// some processing
  }




export const CreateHomeFormSchema = Joi.object().keys({
	coverageDetails: Joi.object().required().error(errors => mapErrorMessages(errors, 'Coverage details is required.')),
}).unknown(true);



export class HomeInsuranceFormBody {

    @ValidateNested({ each: true })
    @Type((): any => CoverageDetails)
    public coverageDetails: CoverageDetails;
}



export class CoverageDetails {

    @IsNumber()
    public ownershipCode: number;

    @IsOptional()
    @IsString()
    public ownership: string;

    @IsNumber()
    public nationalityCode: number;

    @IsOptional()
    @IsString()
    public coverageDescription: string;

    @ValidateNested({ each: true })
    public mandatoryCovers: MandatoryCover[];
}



export class MandatoryCover {

	@IsString()
	public coverCode: CoverCode;

	@IsBoolean()
	public coverIncluded: boolean;

	@IsNumber()
	public coverageLimit: number;

	@IsString()
	public coverageRange: string;
}
Editor is loading...
Leave a Comment