UNPKG

@speakr/speakr-module-services

Version:
47 lines (44 loc) 2.02 kB
const db = require('../../db'); const moment = require('moment'); const momentTimeZone = require('moment-timezone'); const readScheduled = require('../../features/scheduled_creatives/read'); const updateScheduled = require('../../features/scheduled_creatives/update'); const deleteScheduled = require('../../features/scheduled_creatives/delete'); const creativeFeatures = require('../../features/creative'); module.exports = function () { const message = `Auto published through the Speakr scheduler on ${momentTimeZone.tz('America/Los_Angeles').format('MMMM Do YYYY, h:mm:ss a')} PST`; return readScheduled.getPassedDueScheduledSubmissions() .then((submissions) => deleteScheduled.deleteScheduledSubmissions(submissions)) .then((submissions) => readScheduled.doubleCheckScheduled(submissions)) .then((submissions) => { console.log('\n\n PUBLISHING', submissions); if (submissions !== 'none scheduled') { const ids = submissions.map(s => s.dataValues).map(v => v.creative_id); return creativeFeatures.read.allById(ids) .then(submissions => creativeFeatures.publish.lambdaPublish(submissions, message)) .then(lambdaRes => { const lambdaArray = Array.isArray(lambdaRes) ? lambdaRes : [lambdaRes]; const successes = lambdaArray.filter(sub => sub.Payload.code === 201); const failures = lambdaArray.filter(sub => { if (sub.Payload.errorMessage || sub.StatusCode === 500 || sub.Payload.code === 500) { return sub; } }); console.log('\n\n\n\n\n\nSUCCESSES', successes); console.log('\n\nFAILURES', failures); const successIds = successes.map(s => s.creative_id); return updateScheduled.updatePostedAtTime(successIds) .then(() => { return Promise.resolve({ successes, failures }); }) }) } else { return new Promise((resolve, reject) => { resolve(`${momentTimeZone.tz('America/Los_Angeles').format('MMMM Do YYYY, h:mm:ss a')} PST`); }) } }); };