paradigm-facebook-ia
Version:
Paradigm Facebook Instant Articles
51 lines (37 loc) • 1.41 kB
JavaScript
const Job = require('structure-job')
const {ApplicationModel} = require('structure-applications')
class DeleteArticleJob extends Job {
constructor(options = {}) {
super(Object.assign({}, {
label: 'Delete Facebook Instant Article',
priority: 'high',
numRetries: 60, // We sometimes need to wait for Facebook to finish imports
table: 'jobs_delete_instant_article_article'
}, options))
this.applicationId = options.applicationId
this.logger = options.logger || console
if(!this.logger.debug) {
this.logger.debug = console.log.bind(console)
}
this.organizationId = options.organizationId
}
async handler(job) {
const applicationModel = new ApplicationModel({
organizationId: this.organizationId,
logger: this.logger,
})
const app = await applicationModel.getById(this.applicationId)
if (!app.facebook || !app.facebook.pageId) {
this.logger.debug('No facebook page ID set on application')
return
}
const FacebookInstantArticleModel = require('../models/facebook-instant-article')
const facebookInstantArticleModel = new FacebookInstantArticleModel({
organizationId: this.organizationId,
applicationId: this.applicationId,
logger: this.logger
})
await facebookInstantArticleModel.deleteForDocument(job.data.documentId)
}
}
module.exports = DeleteArticleJob