@defra/wls-eps-web-service
Version:
The web service for wildlife licencing of European Protected Species
34 lines (29 loc) • 1.39 kB
JavaScript
import Joi from 'joi'
import pageRoute from '../../routes/page-route.js'
import { conservationConsiderationURIs } from '../../uris.js'
import { checkApplication } from '../common/check-application.js'
import { allCompletion, getCurrentSite, checkDesignatedSite } from './common.js'
import { APIRequests } from '../../services/api-requests.js'
import { PowerPlatformKeys } from '@defra/wls-powerapps-keys'
const { DESIGNATED_SITE_PROXIMITY } = conservationConsiderationURIs
export const getData = async request => {
const ads = await getCurrentSite(request)
return { proximity: ads.onSiteOrCloseToSite, values: PowerPlatformKeys.ON_SITE_OR_CLOSE_TO_SITE }
}
export const setData = async request => {
const { applicationId } = await request.cache().getData()
const ads = await getCurrentSite(request)
ads.onSiteOrCloseToSite = parseInt(request.payload.proximity)
await APIRequests.DESIGNATED_SITES.update(applicationId, ads.id, ads)
}
export default pageRoute({
page: DESIGNATED_SITE_PROXIMITY.page,
uri: DESIGNATED_SITE_PROXIMITY.uri,
checkData: [checkApplication, checkDesignatedSite],
validator: Joi.object({
proximity: Joi.string().required().valid(...Object.values(PowerPlatformKeys.ON_SITE_OR_CLOSE_TO_SITE).map(v => v.toString()))
}).options({ abortEarly: false, allowUnknown: true }),
getData: getData,
completion: allCompletion,
setData: setData
})