UNPKG

@defra/wls-eps-web-service

Version:

The web service for wildlife licencing of European Protected Species

68 lines (59 loc) 3.01 kB
import { APIRequests } from '../../../services/api-requests.js' import { checkApplication } from '../../common/check-application.js' import { ContactRoles } from '../common/contact-roles.js' import { contactURIs, TASKLIST } from '../../../uris.js' import { checkAnswersPage } from '../../common/check-answers.js' import { yesNoFromBool } from '../../common/common.js' import { SECTION_TASKS } from '../../tasklist/general-sections.js' import { canBeUser } from '../common/common-handler.js' import { tagStatus } from '../../../services/status-tags.js' const { CHECK_ANSWERS } = contactURIs.ADDITIONAL_APPLICANT export const getData = async request => { const journeyData = await request.cache().getData() const { applicationId } = journeyData await APIRequests.APPLICATION.tags(applicationId).set({ tag: SECTION_TASKS.ADDITIONAL_CONTACTS, tagState: tagStatus.COMPLETE_NOT_CONFIRMED }) const additionalApplicant = await APIRequests.CONTACT.role(ContactRoles.ADDITIONAL_APPLICANT).getByApplicationId(applicationId) const additionalEcologist = await APIRequests.CONTACT.role(ContactRoles.ADDITIONAL_ECOLOGIST).getByApplicationId(applicationId) // These flags are to help keep track of the page sequence Object.assign(journeyData, { additionalContact: { [ContactRoles.ADDITIONAL_APPLICANT]: !!additionalApplicant, [ContactRoles.ADDITIONAL_ECOLOGIST]: !!additionalEcologist } }) await request.cache().setData(journeyData) return { applicant: additionalApplicant ? [ { key: 'addAdditionalApplicant', value: yesNoFromBool(true) }, (await canBeUser(request, [ContactRoles.APPLICANT]) && { key: 'applicantIsUser', value: yesNoFromBool(additionalApplicant.userId) }), { key: 'applicantName', value: additionalApplicant.fullName }, { key: 'applicantEmail', value: additionalApplicant.contactDetails.email } ].filter(a => a) : [ { key: 'addAdditionalApplicant', value: yesNoFromBool(false) } ], ecologist: additionalEcologist ? [ { key: 'addAdditionalEcologist', value: yesNoFromBool(true) }, (await canBeUser(request, [ContactRoles.ECOLOGIST]) && { key: 'ecologistIsUser', value: yesNoFromBool(additionalEcologist.userId) }), { key: 'ecologistName', value: additionalEcologist.fullName }, { key: 'ecologistEmail', value: additionalEcologist.contactDetails.email } ].filter(a => a) : [ { key: 'addAdditionalEcologist', value: yesNoFromBool(false) } ] } } export const setData = async request => { const { applicationId } = await request.cache().getData() await APIRequests.APPLICATION.tags(applicationId).set({ tag: SECTION_TASKS.ADDITIONAL_CONTACTS, tagState: tagStatus.COMPLETE }) } export const additionalContactCheckAnswers = checkAnswersPage({ checkData: checkApplication, page: CHECK_ANSWERS.page, uri: CHECK_ANSWERS.uri, getData: getData, setData: setData, completion: TASKLIST.uri })