UNPKG

@defra/wls-eps-web-service

Version:

The web service for wildlife licencing of European Protected Species

87 lines (77 loc) 2.99 kB
import { PowerPlatformKeys } from '@defra/wls-powerapps-keys' import { APIRequests } from '../../../services/api-requests.js' import { permissionsURIs } from '../../../uris.js' export const getPermissionType = permissionTypeValue => { let permissionType const permissionTypeText = { PLANNING_PERMISSION: 'Planning permission', DEMOLITION_CONSENT: 'Demolition consent', LISTED_BUILDING_CONSENT: 'Listed building consent', HIGHWAYS_ACT_CONSENT: 'Highways Act consent', MINERAL_CONSENT: 'Mineral consent', CONSERVATION_AREA_CONSENT: 'Conservation area consent', TREE_PRESERVATION_ORDER: 'Tree preservation order', UTILITIES_CONSENT: 'Utilities consent' } for (const [key, value] of Object.entries(PowerPlatformKeys.PERMISSION_TYPE)) { if (value === permissionTypeValue) { permissionType = permissionTypeText[key] } } return permissionType } export const getPermissionPlanningType = permissionPlanningTypeValue => { let permissionPlanningType const permissionPlanningTypeText = { FULL: 'Full', OUTLINE: 'Outline', HYBRID: 'Hybrid', OTHER: 'Other' } for (const [key, value] of Object.entries(PowerPlatformKeys.PLANNING_PERMISSION_TYPE)) { if (value === permissionPlanningTypeValue) { permissionPlanningType = permissionPlanningTypeText[key] } } return permissionPlanningType } export const getPermissionReason = permissionReasonValue => { let permissionReason const permissionReasonText = { PERMITTED_DEVELOPMENT: 'Permitted development', HEALTH_AND_SAFETY: 'Health and safety' } for (const [key, value] of Object.entries(PowerPlatformKeys.NO_PERMISSION_REQUIRED)) { if (value === permissionReasonValue) { permissionReason = permissionReasonText[key] } } return permissionReason } export const getAuthorityName = async authorityId => { const authorities = await APIRequests.OTHER.authorities() return authorities.find(a => a.id === authorityId)?.name } export const getCheckYourAnswersData = async permissionData => { const data = { pageData: [] } const removePermissionUrl = permissionsURIs.CONSENT_REMOVE.uri const changePermissionUrl = permissionsURIs.CONSENT_TYPE.uri for (const permission of permissionData) { const id = permission.id const type = getPermissionType(permission?.type) const planningType = getPermissionPlanningType(permission?.planningType) const referenceNumber = permission?.referenceNumber const planningTypeOtherDescription = permission?.planningTypeOtherDescription const authority = await getAuthorityName(permission?.authority) let permissionInfo if (id && type && referenceNumber && authority) { permissionInfo = Object.assign(permission, { id, type, planningType, referenceNumber, planningTypeOtherDescription, authority, removePermissionUrl, changePermissionUrl }) } if (permissionInfo) { data.pageData.push(permissionInfo) } } return data }