UNPKG

@speakr/speakr-module-services

Version:
109 lines (86 loc) 2.84 kB
"use strict"; const db = require('../../db/'); module.exports = { byIdHash, mediaByIdHash, autoCloseViaCronJob }; function byIdHash(options) { let platform = options.req.body.platform; let status = options.req.body.status; let where = { name: platform}; return db.platforms.findOne({ where }) .then(platforms => { let where = { id_hash: options.req.params.id_hash }; return db.initiatives.findOne({ where }) .then(initiatives => { if(initiatives.platform_id != platforms.id){ let update = { platform_id: platforms.id }; let where = { id: initiatives.id}; return db.initiatives.update(update, {where}) .then(initiatives => { where = { id_hash: options.req.params.id_hash }; return db.initiatives.findOne({ where, include: [ db.platforms, db.statuses ]}) .then(initiatives => { options.initiatives = initiatives; return Promise.resolve(options) }).catch(err => Promise.reject(err)); }).catch(err => Promise.reject(err)); } let where = {name: status}; return db.statuses.findOne({ where }) .then((statuses) => { where = {name: platform}; return db.platforms.findOne({ where }) .then((platforms) => { let update = options.req.body; update.initiative_status_id = statuses.id; where = { id_hash: options.req.params.id_hash }; return db.initiatives.update(update, {where}) .then(initiatives => { where = { id_hash: options.req.params.id_hash }; return db.initiatives.findOne({ where, include: [ db.platforms, db.statuses ]}) .then(initiatives => { options.initiatives = initiatives; return Promise.resolve(options) }).catch(err => Promise.reject(err)); }).catch(err => Promise.reject(err)); }); }); }) }) } function mediaByIdHash(options) { let update = options.media.config; let where = { id_hash: options.media.id_hash }; return db.initiatives.update(update, { where }) .then(initiatives => { if(!!initiatives) { return db.initiatives.findOne(where) .then(initiatives => { options.initiatives = initiatives; return Promise.resolve(options); }); } return Promise.reject(options) }).catch(err => { return Promise.reject(err) }) } function autoCloseViaCronJob() { let yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); yesterday.setHours(23); yesterday.setMinutes(59); yesterday.setSeconds(59); yesterday.setMilliseconds(999); const where = { end_date: { $lte: yesterday }, initiative_status_id: 2 }; const update = { initiative_status_id: 1 }; return db.initiatives.update(update, { where }) }