UNPKG

@defra/wls-eps-web-service

Version:

The web service for wildlife licencing of European Protected Species

50 lines (46 loc) 2.34 kB
import { APIRequests } from '../../../../services/api-requests.js' import { boolFromYesNo } from '../../../common/common.js' import { contactAccountOperations } from '../operations.js' export const getEmailAddressData = (contactRole, accountRole) => async request => { const journeyData = await request.cache().getData() const { applicationId } = journeyData const contact = await APIRequests.CONTACT.role(contactRole).getByApplicationId(applicationId) const account = await APIRequests.ACCOUNT.role(accountRole).getByApplicationId(applicationId) return { email: account?.contactDetails?.email || contact?.contactDetails?.email, contactName: contact?.fullName, accountName: account?.name } } export const setEmailAddressData = (contactRole, accountRole) => async request => { const { userId, applicationId } = await request.cache().getData() const account = await APIRequests.ACCOUNT.role(accountRole).getByApplicationId(applicationId) const contact = await APIRequests.CONTACT.role(contactRole).getByApplicationId(applicationId) const needAccountEmail = account && !account?.contactDetails?.email if (boolFromYesNo(request.payload['change-email'])) { const contactAccountOps = contactAccountOperations(contactRole, accountRole, applicationId, userId) await contactAccountOps.setEmailAddress(request.payload['email-address']) } else if (needAccountEmail) { const contactAccountOps = contactAccountOperations(contactRole, accountRole, applicationId, userId) await contactAccountOps.setEmailAddress(contact.contactDetails.email) } } export const emailAddressCompletion = (contactRole, accountRole, urlBase, redirectJourney) => async request => { // If an address is already present then go to the check page, otherwise go to the postcode page const { applicationId } = await request.cache().getData() const account = await APIRequests.ACCOUNT.role(accountRole).getByApplicationId(applicationId) if (account) { if (account.address) { return redirectJourney(applicationId, urlBase) } else { return urlBase.POSTCODE.uri } } else { const contact = await APIRequests.CONTACT.role(contactRole).getByApplicationId(applicationId) if (contact.address) { return urlBase.CHECK_ANSWERS.uri } else { return urlBase.POSTCODE.uri } } }