Untitled
unknown
plain_text
10 months ago
3.9 kB
9
Indexable
export const getHomeInfoResponseMapper = (getHomeInfoBawabaResponse: any, record: HomeApplication): HomeInsuranceFormBody => { const { transactionDetails, feesAndTaxes, mandatoryCovers, listedItems, buildingDetails, underWritingQuestions } = getHomeInfoBawabaResponse; const { stage } = record; const error = (stage === HomeFormStage.OFFER_FAILED) ? getQuotesError(record.errors) : undefined; const response: HomeInsuranceFormBody = { coverageDetails: { effectiveDate: transactionDetails.effectiveDate, ownershipCode: buildingDetails.ownershipCode, }, feesAndTaxes: feesAndTaxes, mandatoryCovers: mandatoryCovers.map((element: any) => { return { coverCode: element.coverCode, coverIncluded: element.coverIncluded, coverageLimit: element.coverageLimit, }; }), contents: getItemFromListedItems(CoverCode.CT, listedItems), personalPossessions: getItemFromListedItems(CoverCode.PP, listedItems), propertyDetails: { ..._.omit(buildingDetails, ['ownershipCode', 'ownershipStatus']), }, underWritingQuestions: underWritingQuestions, stage, error, }; return response; return plainToClass(HomeInsuranceFormBody, response, { enableImplicitConversion: true }); }; export class HomeInsuranceFormBody { @ValidateNested({ each: true }) @Type((): any => CoverageDetails) public coverageDetails: CoverageDetails; public feesAndTaxes: FeeAndTax[]; @ValidateNested({ each: true }) public mandatoryCovers: MandatoryCover[]; @ValidateNested({ each: true }) @Type((): any => PropertyDetails) public propertyDetails: PropertyDetails; @ValidateNested({ each: true }) public contents: ListedItemData[]; @ValidateNested({ each: true }) public personalPossessions: ListedItemData[]; public underWritingQuestions: UnderWritingQuestion[]; @IsString() @IsOptional() public stage: string; @IsOptional() @Type((): any => ErrorVO) public error: ErrorVO; } { "coverageDetails": { "effectiveDate": "2023-04-03 00:00:00" }, "feesAndTaxes": [ { "key": "loadingOrDiscountPercentage", "value": -10 }, { "key": "loadingOrDiscountAmount", "value": 75 }, { "key": "promoCodeDiscountPercentage", "value": 0 }, { "key": "promoCodeDiscountAmount", "value": 0 }, { "key": "vatRatePercentage", "value": 5 }, { "key": "vatAmount", "value": 33.75 } ], "mandatoryCovers": [ [], [], [] ], "contents": [ [] ], "personalPossessions": [ [] ], "propertyDetails": { "cityCode": 1, "city": "DUBAI", "areaCode": "589", "area": "Downtown Dubai", "propertyTypeCode": 174, "propertyType": "Apartment", "buildingName": "Bel**levue Towers", "flatVillaNo": 395, "poBox": 560076, "numberOfFloors": 165, "numberOfBedrooms": 10, "latitude": 25.186958, "longitude": 55.275236, "street": "Burj Khalifa St", "zone": "Business Bay", "grl": "723377", "infoMapStatus": "1" }, "underWritingQuestions": [ { "key": "HomeUnattended", "value": "false" }, { "key": "Claim", "value": "true" } ], "stage": "OfferCreated" }
Editor is loading...
Leave a Comment