diff --git a/src/controllers/checkYourAnswers.ts b/src/controllers/checkYourAnswers.ts index b6e7686..bc2b3b1 100644 --- a/src/controllers/checkYourAnswers.ts +++ b/src/controllers/checkYourAnswers.ts @@ -45,7 +45,12 @@ export const get = async (req: Request, res: Response, next: NextFunction) => { locales.i18nCh.resolveNamespacesKeys(lang) ); - const formattedIdentityDocuments = clientData.idDocumentDetails!; + const identityDocuments = clientData.idDocumentDetails!; + + const formattedIdentityDocuments = identityDocuments.map((doc) => ({ + ...doc, + docName: FormatService.findDocumentName(doc.docName, locales.i18nCh.resolveNamespacesKeys(lang)) + })); const amlBodies = getAmlBodiesAsString(acspDetails); @@ -59,10 +64,11 @@ export const get = async (req: Request, res: Response, next: NextFunction) => { dateOfBirth: formattedDateOfBirth, whenIdentityChecksCompleted: formattedwhenIdentityChecksCompleted, documentsChecked: formattedDocumentsChecked, - idDocumentDetails: formattedIdentityDocuments + idDocumentDetails: identityDocuments }, amlBodies, - acspName: acspDetails.name + acspName: acspDetails.name, + formattedIdentityDocuments }); }; @@ -93,7 +99,12 @@ export const post = async (req: Request, res: Response, next: NextFunction) => { ); const amlBodies = getAmlBodiesAsString(acspDetails); - const formattedIdentityDocuments = clientData.idDocumentDetails!; + const identityDocuments = clientData.idDocumentDetails!; + + const formattedIdentityDocuments = identityDocuments.map((doc) => ({ + ...doc, + docName: FormatService.findDocumentName(doc.docName, locales.i18nCh.resolveNamespacesKeys(lang)) + })); const pageProperties = getPageProperties(formatValidationError(errorList.array(), lang)); res.status(400).render(config.CHECK_YOUR_ANSWERS, { @@ -107,10 +118,11 @@ export const post = async (req: Request, res: Response, next: NextFunction) => { dateOfBirth: formattedDateOfBirth, whenIdentityChecksCompleted: formattedwhenIdentityChecksCompleted, documentsChecked: formattedDocumentsChecked, - idDocumentDetails: formattedIdentityDocuments + idDocumentDetails: identityDocuments }, amlBodies, - acspName: acspDetails.name + acspName: acspDetails.name, + formattedIdentityDocuments }); } else { try { diff --git a/src/controllers/idDocumentDetailsController.ts b/src/controllers/idDocumentDetailsController.ts index 38d80cb..ee11b93 100644 --- a/src/controllers/idDocumentDetailsController.ts +++ b/src/controllers/idDocumentDetailsController.ts @@ -30,7 +30,7 @@ export const get = async (req: Request, res: Response, next: NextFunction) => { ); let payload; if (clientData.idDocumentDetails != null) { - payload = createPayload(clientData.idDocumentDetails, formattedDocumentsChecked); + payload = createPayload(clientData.idDocumentDetails, formattedDocumentsChecked, locales.i18nCh.resolveNamespacesKeys(lang)); } res.render(config.ID_DOCUMENT_DETAILS, { @@ -75,7 +75,7 @@ export const post = async (req: Request, res: Response, next: NextFunction) => { countryList: countryList }); } else { - documentDetailsService.saveIdDocumentDetails(req, clientData, formattedDocumentsChecked, locales.i18nCh.resolveNamespacesKeys(lang)); + documentDetailsService.saveIdDocumentDetails(req, clientData, clientData.documentsChecked!, locales.i18nCh.resolveNamespacesKeys(lang)); const checkYourAnswersFlag = session?.getExtraData(CHECK_YOUR_ANSWERS_FLAG); if (checkYourAnswersFlag) { @@ -94,11 +94,11 @@ const getBackUrl = (selectedOption: string) => { } }; -export const createPayload = (idDocumentDetails: DocumentDetails[], formatDocumentsCheckedText: string[]): { [key: string]: string | undefined } => { +export const createPayload = (idDocumentDetails: DocumentDetails[], formatDocumentsCheckedText: string[], i18: any): { [key: string]: string | undefined } => { const payload: { [key: string]: any | undefined } = {}; idDocumentDetails.forEach((body, index) => { for (let i = 0; i < formatDocumentsCheckedText.length; i++) { - if (formatDocumentsCheckedText[i] === body.docName) { + if (formatDocumentsCheckedText[i] === FormatService.findDocumentName(body.docName, i18)) { payload[`documentNumber_${i + 1}`] = body.documentNumber; if (body.expiryDate) { payload[`expiryDateDay_${i + 1}`] = body.expiryDate!.getDate(); diff --git a/src/services/formatService.ts b/src/services/formatService.ts index 2e92346..b253838 100644 --- a/src/services/formatService.ts +++ b/src/services/formatService.ts @@ -59,43 +59,13 @@ export class FormatService { public static formatDocumentsChecked ( documents: string[] | undefined, i18n: any - ): string { if (!documents || documents.length === 0) { return ""; } - const documentMapping: { [key: string]: string } = { - passport: i18n.biometricPassport, - irish_passport_card: i18n.irishPassport, - UK_or_EU_driving_licence: i18n.ukDriversLicence, - EEA_identity_card: i18n.identityCard, - UK_biometric_residence_permit: i18n.biometricPermit, - UK_biometric_residence_card: i18n.biometricCard, - UK_frontier_worker_permit: i18n.frontierPermit, - - UK_PASS_card: i18n.passCard, - UK_or_EU_digital_tachograph_card: i18n.ukEuDigitalCard, - UK_HM_forces_card: i18n.ukForceCard, - UK_HM_veteran_card: i18n.ukArmedForceCard, - work_permit_photo_id: i18n.photoWorkPermit, - immigration_document_photo_id: i18n.photoimmigrationDoc, - visa_photo_id: i18n.photoVisa, - UK_firearms_licence: i18n.ukFirearmsLicence, - PRADO_supported_photo_id: i18n.photoIdPrado, - birth_certificate: i18n.birthCert, - marriage_certificate: i18n.marriageCert, - immigration_document_non_photo_id: i18n.noPhotoimmigrationDoc, - visa_non_photo_id: i18n.noPhotoVisa, - work_permit_non_photo_id: i18n.noPhotoWorkPermit, - bank_statement: i18n.bankStatement, - rental_agreement: i18n.rentalAgreement, - mortgage_statement: i18n.morgageStatement, - UK_council_tax_statement: i18n.taxStatement, - utility_bill: i18n.utilityBill - }; const formattedDocuments = documents.map((doc) => { - const docText = documentMapping[doc] || doc; + const docText = FormatService.getDocumentName(doc, i18n); return `• ${docText}`; }); @@ -196,4 +166,46 @@ export class FormatService { }); return documentHintText; } + + public static findDocumentName ( + document: string | undefined, + i18n: any + ): string { + if (!document || document.length === 0) { + return ""; + } + return FormatService.getDocumentName(document, i18n); + } + + private static getDocumentName (document: string, i18n: any): string { + const documentMapping: { [key: string]: string } = { + passport: i18n.biometricPassport, + irish_passport_card: i18n.irishPassport, + UK_or_EU_driving_licence: i18n.ukDriversLicence, + EEA_identity_card: i18n.identityCard, + UK_biometric_residence_permit: i18n.biometricPermit, + UK_biometric_residence_card: i18n.biometricCard, + UK_frontier_worker_permit: i18n.frontierPermit, + UK_PASS_card: i18n.passCard, + UK_or_EU_digital_tachograph_card: i18n.ukEuDigitalCard, + UK_HM_forces_card: i18n.ukForceCard, + UK_HM_veteran_card: i18n.ukArmedForceCard, + work_permit_photo_id: i18n.photoWorkPermit, + immigration_document_photo_id: i18n.photoimmigrationDoc, + visa_photo_id: i18n.photoVisa, + UK_firearms_licence: i18n.ukFirearmsLicence, + PRADO_supported_photo_id: i18n.photoIdPrado, + birth_certificate: i18n.birthCert, + marriage_certificate: i18n.marriageCert, + immigration_document_non_photo_id: i18n.noPhotoimmigrationDoc, + visa_non_photo_id: i18n.noPhotoVisa, + work_permit_non_photo_id: i18n.noPhotoWorkPermit, + bank_statement: i18n.bankStatement, + rental_agreement: i18n.rentalAgreement, + mortgage_statement: i18n.morgageStatement, + UK_council_tax_statement: i18n.taxStatement, + utility_bill: i18n.utilityBill + }; + return documentMapping[document] ? documentMapping[document] : document; + } } diff --git a/src/views/check-your-answers/check-your-answers.njk b/src/views/check-your-answers/check-your-answers.njk index e96e6c5..7bda663 100644 --- a/src/views/check-your-answers/check-your-answers.njk +++ b/src/views/check-your-answers/check-your-answers.njk @@ -234,24 +234,24 @@ ] }) }} -{% for item in clientData.idDocumentDetails %} -