paradigm-core
Version:
Paradigm Core Modules
64 lines (42 loc) • 1.3 kB
JavaScript
const {Queue} = require('structure-core')
const {Purge} = require('../../purge')
const Document = require('../models/document')
class PurgeUrlQueue extends Queue {
constructor(options = {}) {
super({label: 'documents--purge-urls'})
}
handler(job) {
const documentModel = new Document()
return new Promise( async (resolve, reject) => {
try {
const organizationId = job.data.organizationId
const application = job.data.application
const id = job.data.id
const purge = new Purge({
organizationId: organizationId,
applicationId: application.id,
logger: this.logger,
hostname: application.host,
protocol: application.protocol
})
if(job.data.status) {
// Update document status
await documentModel.updateById(id, {
status: job.data.status
})
}
if (job.data.cacheOnly) {
await purge.clearCache()
} else {
await purge.purgeForDocument(job.data)
}
this.logger.debug('Purge complete', id)
resolve()
} catch(e) {
console.error('Purge url handler unable to complete', e)
reject(e)
}
})
}
}
module.exports = new PurgeUrlQueue()