diff --git a/app/services/return-logs/fetch-return-cycles.service.js b/app/services/return-logs/fetch-return-cycles.service.js deleted file mode 100644 index 01c7f352cf..0000000000 --- a/app/services/return-logs/fetch-return-cycles.service.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict' - -/** - * Fetches the return cycles from the provided date forward - * @module FetchReturnCyclesService - */ - -const ReturnCycleModel = require('../../models/return-cycle.model.js') - -const { cycleStartDateByDate } = require('../../lib/return-cycle-dates.lib.js') - -/** - * Given a date return all the return cycles from that date forward. - * - * @param {Date} date - this date could be an end date or todays date - * - * @returns {Promise} an array of return cycle details - */ -async function go(date) { - return ReturnCycleModel.query() - .select(['dueDate', 'endDate', 'id', 'startDate', 'summer']) - .where('endDate', '>=', date) - .orderBy('endDate', 'desc') - // const earliestSummerCycleStartDate = cycleStartDateByDate(date, true) - // const earliestAllYearCycleStartDate = cycleStartDateByDate(date, false) - - // const summerReturnCycles = await _fetchReturnCycles(earliestSummerCycleStartDate, true) - // const allYearReturnCycles = await _fetchReturnCycles(earliestAllYearCycleStartDate, false) - - // return [...summerReturnCycles, ...allYearReturnCycles] -} - -async function _fetchReturnCycles(startDate, summer) { - return await ReturnCycleModel.query() - .select(['id', 'startDate', 'dueDate', 'endDate', 'summer']) - .where('summer', summer) - .where('startDate', '>=', startDate) -} - -module.exports = { - go -} diff --git a/app/services/return-logs/process-licence-return-logs.service.js b/app/services/return-logs/process-licence-return-logs.service.js index 0148e41d50..d9896619da 100644 --- a/app/services/return-logs/process-licence-return-logs.service.js +++ b/app/services/return-logs/process-licence-return-logs.service.js @@ -1,19 +1,19 @@ 'use strict' /** - * Process voiding and issuing return logs for a given licence reference + * Process voiding and reissuing return logs for a given licence reference * @module ProcessLicenceReturnLogsService */ const { calculateAndLogTimeTaken, currentTimeInNanoseconds } = require('../../lib/general.lib.js') const CreateReturnLogsService = require('./create-return-logs.service.js') -const FetchReturnCyclesService = require('./fetch-return-cycles.service.js') const FetchReturnRequirementsService = require('./fetch-return-requirements.service.js') -const GenerateReturnLogsService = require('./generate-return-logs.service.js') +const GenerateReturnLogService = require('./generate-return-log.service.js') +const ReturnCycleModel = require('../../models/return-cycle.model.js') const VoidReturnLogsService = require('./void-return-logs.service.js') /** - * Process voiding and issuing return logs for a given licence reference + * Process voiding and reissuing return logs for a given licence reference * * @param {string} licenceReference - The licence to create return logs for * @param {Date} [endDate] - An optional end date to use when determining which return logs to void and reissue @@ -21,22 +21,21 @@ const VoidReturnLogsService = require('./void-return-logs.service.js') async function go(licenceReference, endDate = null) { try { const startTime = currentTimeInNanoseconds() - let returnCycles = [] if (endDate) { await VoidReturnLogsService.go(licenceReference, endDate) - returnCycles = await FetchReturnCyclesService.go(endDate) } else { - returnCycles = await FetchReturnCyclesService.go(new Date()) + endDate = new Date() } + const returnCycles = await _fetchReturnCycles(endDate) const returnLogs = [] for (const returnCycle of returnCycles) { const returnRequirements = await FetchReturnRequirementsService.go(returnCycle, licenceReference) for (const returnRequirement of returnRequirements) { - const returnLog = await GenerateReturnLogsService.go(returnRequirement, returnCycle) + const returnLog = GenerateReturnLogService.go(returnRequirement, returnCycle) returnLogs.push(returnLog) } @@ -50,6 +49,13 @@ async function go(licenceReference, endDate = null) { } } +async function _fetchReturnCycles(endDate) { + return ReturnCycleModel.query() + .select(['dueDate', 'endDate', 'id', 'startDate', 'summer']) + .where('endDate', '>=', endDate) + .orderBy('endDate', 'desc') +} + module.exports = { go } diff --git a/test/services/return-logs/fetch-return-cycles.service.test.js b/test/services/return-logs/fetch-return-cycles.service.test.js deleted file mode 100644 index 11979af48d..0000000000 --- a/test/services/return-logs/fetch-return-cycles.service.test.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict' - -// Test framework dependencies -const Lab = require('@hapi/lab') -const Code = require('@hapi/code') - -const { describe, it, before } = (exports.lab = Lab.script()) -const { expect } = Code - -// Test helpers -const ReturnCycleHelper = require('../../support/helpers/return-cycle.helper.js') - -// Thing under test -const FetchReturnCyclesService = require('../../../app/services/return-logs/fetch-return-cycles.service.js') - -describe('Fetch return cycles service', () => { - let allYearReturnCycle - let returnCycleStartDate - let summerReturnCycle - let testDate - let previousSummerReturnCycle - - before(async () => { - allYearReturnCycle = await ReturnCycleHelper.select(0, false) - summerReturnCycle = await ReturnCycleHelper.select(1, true) - previousSummerReturnCycle = await ReturnCycleHelper.select(2, true) - }) - - describe('the date is at the start of the all year cycle', () => { - it('should return the correct return cycles', async () => { - returnCycleStartDate = new Date(allYearReturnCycle.startDate) - testDate = new Date(`${returnCycleStartDate.getFullYear()}-${returnCycleStartDate.getMonth() + 1}-25`) - allYearReturnCycle = await ReturnCycleHelper.select(0, false) - summerReturnCycle = await ReturnCycleHelper.select(0, true) - previousSummerReturnCycle = await ReturnCycleHelper.select(1, true) - - const result = await FetchReturnCyclesService.go(testDate) - - expect(result).to.equal([ - { - dueDate: summerReturnCycle.dueDate, - endDate: summerReturnCycle.endDate, - id: summerReturnCycle.id, - startDate: summerReturnCycle.startDate, - summer: summerReturnCycle.summer - }, - { - dueDate: allYearReturnCycle.dueDate, - endDate: allYearReturnCycle.endDate, - id: allYearReturnCycle.id, - startDate: allYearReturnCycle.startDate, - summer: allYearReturnCycle.summer - }, - { - dueDate: previousSummerReturnCycle.dueDate, - endDate: previousSummerReturnCycle.endDate, - id: previousSummerReturnCycle.id, - startDate: previousSummerReturnCycle.startDate, - summer: previousSummerReturnCycle.summer - } - ]) - }) - }) - - describe('the date is in the future beyond the current return cycles', () => { - it('should return an empty array', async () => { - returnCycleStartDate = new Date(allYearReturnCycle.startDate) - testDate = new Date(`${returnCycleStartDate.getFullYear() + 2}-${returnCycleStartDate.getMonth() + 1}-25`) - - const result = await FetchReturnCyclesService.go(testDate) - - expect(result).to.equal([]) - }) - }) -})