Untitled
unknown
plain_text
a year ago
3.9 kB
12
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