UNPKG

paradigm-core

Version:
64 lines (42 loc) 1.3 kB
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()