Skip to content

Commit

Permalink
Move mod logs into a new job
Browse files Browse the repository at this point in the history
  • Loading branch information
Cruikshanks committed Sep 2, 2024
1 parent c8dade2 commit e34940a
Show file tree
Hide file tree
Showing 12 changed files with 112 additions and 18 deletions.
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,6 @@ WRLS_LOG_LEVEL=debug
WRLS_CRON_LICENCES='0 16 * * 1,2,3,4,5'
WRLS_CRON_CHARGING='0 14 * * 1,2,3,4,5'
WRLS_CRON_NALD='0 */1 * * *'
WRLS_CRON_MOD_LOGS='0 7 * * 1,2,3,4,5'
WRLS_CRON_RETURN_VERSIONS='0 6 * * 1,2,3,4,5'
WRLS_CRON_TRACKER='0 15 * * 1,2,3,4,5'
3 changes: 3 additions & 0 deletions config.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ module.exports = {
charging: {
schedule: process.env.WRLS_CRON_CHARGING || '0 1 * * 1,2,3,4,5'
},
modLogs: {
schedule: process.env.WRLS_CRON_MOD_LOGS || '0 7 * * 1,2,3,4,5'
},
returnVersions: {
schedule: process.env.WRLS_CRON_RETURN_VERSIONS || '0 6 * * 1,2,3,4,5'
},
Expand Down
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const plugins = [
require('./src/plugins/pg-boss.plugin'),
require('./src/modules/licence-import/plugin'),
require('./src/modules/charging-import/plugin'),
require('./src/modules/mod-logs/plugin'),
require('./src/modules/return-versions/plugin.js'),
require('./src/modules/nald-import/plugin'),
require('./src/modules/bill-runs-import/plugin'),
Expand Down
9 changes: 1 addition & 8 deletions src/modules/charging-import/jobs/charging-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

const job = require('../lib/job')
const queryLoader = require('../lib/query-loader')
const modLogQueries = require('../lib/queries/mod-logs.js')
const purposesQueries = require('../lib/queries/purposes')
const financialAgreementTypeQueries = require('../lib/queries/financial-agreement-types')

Expand All @@ -23,13 +22,7 @@ const handler = async () => {
purposesQueries.importPrimaryPurposes,
purposesQueries.importSecondaryPurposes,
purposesQueries.importUses,
purposesQueries.importValidPurposeCombinations,
modLogQueries.importModLogs,
modLogQueries.linkLicencesToModLogs,
modLogQueries.linkChargeVersionsToModLogs,
modLogQueries.linkLicenceVersionsToModLogs,
modLogQueries.linkReturnVersionsToModLogs,
modLogQueries.updateReturnVersionReasons
purposesQueries.importValidPurposeCombinations
])

global.GlobalNotifier.omg('import.charging-data: finished')
Expand Down
14 changes: 14 additions & 0 deletions src/modules/mod-logs/controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict'

const ImportJob = require('./jobs/import.js')

async function importModLogs (request, h) {
await request.messageQueue.deleteQueue(ImportJob.JOB_NAME)
await request.messageQueue.publish(ImportJob.createMessage())

return h.response().code(204)
}

module.exports = {
importModLogs
}
46 changes: 46 additions & 0 deletions src/modules/mod-logs/jobs/import.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
'use strict'

const { pool } = require('../../../lib/connectors/db.js')
const Queries = require('../lib/queries.js')

const JOB_NAME = 'mod-logs.import'

function createMessage () {
return {
name: JOB_NAME,
options: {
singletonKey: JOB_NAME
}
}
}

async function handler () {
try {
global.GlobalNotifier.omg(`${JOB_NAME}: started`)

await pool.query(Queries.importModLogs)
await pool.query(Queries.linkLicencesToModLogs)
await pool.query(Queries.linkChargeVersionsToModLogs)
await pool.query(Queries.linkLicenceVersionsToModLogs)
await pool.query(Queries.linkReturnVersionsToModLogs)
await pool.query(Queries.updateReturnVersionReasons)
} catch (error) {
global.GlobalNotifier.omfg(`${JOB_NAME}: errored`, error)
throw error
}
}

async function onComplete (job) {
if (!job.failed) {
global.GlobalNotifier.omg(`${JOB_NAME}: finished`)
} else {
global.GlobalNotifier.omg(`${JOB_NAME}: failed`)
}
}

module.exports = {
JOB_NAME,
createMessage,
handler,
onComplete
}
File renamed without changes.
28 changes: 28 additions & 0 deletions src/modules/mod-logs/plugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
'use strict'

const cron = require('node-cron')

const ImportJob = require('./jobs/import.js')

const config = require('../../../config')

async function register (server, _options) {
// Register import mod logs job
await server.messageQueue.subscribe(ImportJob.JOB_NAME, ImportJob.handler)
await server.messageQueue.onComplete(ImportJob.JOB_NAME, (executedJob) => {
return ImportJob.onComplete(executedJob)
})

// Set up import on cron job
cron.schedule(config.import.modLogs.schedule, async () => {
await server.messageQueue.publish(ImportJob.createMessage())
})
}

module.exports = {
plugin: {
name: 'importModLogs',
dependencies: ['pgBoss'],
register
}
}
13 changes: 13 additions & 0 deletions src/modules/mod-logs/routes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
'use strict'

const controller = require('./controller')

const routes = [
{
method: 'post',
handler: controller.importModLogs,
path: '/import/mod-logs'
}
]

module.exports = routes
2 changes: 1 addition & 1 deletion src/modules/return-versions/plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ async function register (server, _options) {
return ImportJob.onComplete(executedJob)
})

// Set up import of return data on cron job
// Set up import on cron job
cron.schedule(config.import.returnVersions.schedule, async () => {
await server.messageQueue.publish(ImportJob.createMessage())
})
Expand Down
4 changes: 3 additions & 1 deletion src/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const licenceImportRoutes = require('./modules/licence-import/routes')
const naldImportRoutes = require('./modules/nald-import/routes')
const returnsRoutes = require('./modules/returns/routes')
const returnVersionsRoutes = require('./modules/return-versions/routes.js')
const modLogsRoutes = require('./modules/mod-logs/routes.js')

module.exports = [
...chargingImportRoutes,
Expand All @@ -15,5 +16,6 @@ module.exports = [
...licenceImportRoutes,
...naldImportRoutes,
...returnsRoutes,
...returnVersionsRoutes
...returnVersionsRoutes,
...modLogsRoutes
]
9 changes: 1 addition & 8 deletions test/modules/charging-import/jobs/charging-data.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const { experiment, test, beforeEach, afterEach } = exports.lab = Lab.script()
const { expect } = Code

// Test helpers
const modLogQueries = require('../../../../src/modules/charging-import/lib/queries/mod-logs.js')
const purposesQueries = require('../../../../src/modules/charging-import/lib/queries/purposes')
const financialAgreementTypeQueries = require('../../../../src/modules/charging-import/lib/queries/financial-agreement-types')

Expand Down Expand Up @@ -54,13 +53,7 @@ experiment('modules/charging-import/jobs/charging-data.js', () => {
purposesQueries.importPrimaryPurposes,
purposesQueries.importSecondaryPurposes,
purposesQueries.importUses,
purposesQueries.importValidPurposeCombinations,
modLogQueries.importModLogs,
modLogQueries.linkLicencesToModLogs,
modLogQueries.linkChargeVersionsToModLogs,
modLogQueries.linkLicenceVersionsToModLogs,
modLogQueries.linkReturnVersionsToModLogs,
modLogQueries.updateReturnVersionReasons
purposesQueries.importValidPurposeCombinations
]
)).to.be.true()
})
Expand Down

0 comments on commit e34940a

Please sign in to comment.