UNPKG

@defra/wls-eps-web-service

Version:

The web service for wildlife licencing of European Protected Species

40 lines (38 loc) 1.53 kB
import { APIRequests } from './api-requests.js' import db from 'debug' import { clearData } from './cache-operations.js' const debug = db('web-service:application-service') /** * Cache and API operations concerning applications. * @type {{ * switchApplication: (function(*, *): Promise<*>), * createApplication: (function(*, *, *): Promise<*>), * submitApplication: ((function(*): Promise<void>)|*), associateApplication: (function(*, *): Promise<*>) * }} */ export const ApplicationService = { createApplication: async (request, typeId, purposeId) => { const journeyData = await request.cache().getData() || {} const application = await APIRequests.APPLICATION.create(typeId, purposeId) delete journeyData.additionalContact Object.assign(journeyData, { applicationId: application.id }) await clearData(journeyData) await request.cache().setData(journeyData) return application }, switchApplication: async (request, id) => { const journeyData = await request.cache().getData() if (!journeyData.applicationId || (journeyData.applicationId && id !== journeyData.applicationId)) { journeyData.applicationId = id await clearData(request) await request.cache().setData(journeyData) } return id }, submitApplication: async request => { const journeyData = await request.cache().getData() const { applicationId } = journeyData debug(`Submitting applicationId: ${applicationId}`) await APIRequests.APPLICATION.submit(applicationId) } }