@defra/wls-eps-web-service
Version:
The web service for wildlife licencing of European Protected Species
49 lines (43 loc) • 2.05 kB
JavaScript
import pageRoute from '../../routes/page-route.js'
import { ReturnsURIs } from '../../uris.js'
import { APIRequests } from '../../services/api-requests.js'
import { allCompletion, checkLicence, commonValidator } from './common-return-functions.js'
import { boolFromYesNo } from '../common/common.js'
const { LICENCE_CONDITIONS } = ReturnsURIs
export const getData = async request => {
const journeyData = await request.cache().getData()
const returnId = journeyData?.returns?.id
const licences = await APIRequests.LICENCES.findActiveLicencesByApplicationId(journeyData?.applicationId)
let licenceConditions, licenceConditionsDetails
if (returnId) {
const licenceReturn = await APIRequests.RETURNS.getLicenceReturn(licences[0]?.id, returnId)
licenceConditions = licenceReturn?.licenceConditions
licenceConditionsDetails = licenceReturn?.licenceConditionsDetails
}
return { licenceConditions, licenceConditionsDetails }
}
export const validator = payload => commonValidator(payload, LICENCE_CONDITIONS.page)
export const setData = async request => {
const journeyData = await request.cache().getData()
const licenceConditions = boolFromYesNo(request.payload['yes-no'])
let licenceConditionsDetails
if (!boolFromYesNo(request.payload['yes-no'])) {
licenceConditionsDetails = request.payload['no-conditional-input']
}
const returnId = journeyData?.returns?.id
const licenceId = journeyData?.licenceId
const licenceReturn = await APIRequests.RETURNS.getLicenceReturn(licenceId, returnId)
const payload = { ...licenceReturn, licenceConditions, licenceConditionsDetails }
await APIRequests.RETURNS.updateLicenceReturn(licenceId, returnId, payload)
journeyData.returns = { ...journeyData.returns, licenceConditions, licenceConditionsDetails }
await request.cache().setData(journeyData)
}
export default pageRoute({
page: LICENCE_CONDITIONS.page,
uri: LICENCE_CONDITIONS.uri,
completion: allCompletion,
checkData: checkLicence,
getData: getData,
setData: setData,
validator: validator
})