const getCampaignById = campaignId => { if (ObjectID.isValid(campaignId)) { return repository.getCampaignById(new ObjectID(campaignId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const getCampaignsByZoneId = (zoneId) => { if (ObjectID.isValid(zoneId)) { return repository.getZoneById(new ObjectID(zoneId)) .then(zone => { if (!zone) return Promise.reject(CONSTS.CODE.WRONG_PARAM) return rp({ uri: `http://${process.env.CAMPAIGN_SERVICE_URL}/campaigns?filter={"_id":{"$in":${JSON.stringify(zone.campaigns)}}}`, json: true }) .then(res => { return Promise.resolve(res.data) }) }) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
router.get('/:id', authenticate, async (req, res) => { try { const { id } = req.params if (!ObjectID.isValid(id)) { return res.status(404).json({ error: 'Invalid ID' }) } const post = await Post.findOne({ _id: id, _creator: res.user._id }) res.status(200).json(post) } catch (err) { res.status(400).json({ error: 'Unable to find that post' }) } })
const updateCreativeById = (creativeId, update) => { if (model.validate(update, model.editCreative) && ObjectID.isValid(creativeId)) { let vastResponse = buildVastVersion({ ...update, _id: creativeId }); return repository.updateCreativeById(new ObjectID(creativeId), { ...update, vastResponse }) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
router.delete('/users/me', authenticate, async (req,res) => { if (!ObjectID.isValid(req.user._id)) { return res.status(404).send(); } try { await req.user.remove() res.send(req.user) } catch (error) { res.status(500).send() } })
const unlinkCreativeFromCampaignId = (creativeId, campaignId) => { if (ObjectID.isValid(creativeId) || ObjectID.isValid(campaignId)) { campaignId = new ObjectID(campaignId); return repository.getCampaignById(campaignId) .then(camp => { camp.creatives = camp.creatives.filter(creative => creative.toString() != creativeId) return repository.updateCampaignById(campaignId, { creatives: camp.creatives }) }) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const updateCampaignById = (campaignId, update) => { let validateData = model.validate(update, model.editCampaign); if (validateData && ObjectID.isValid(campaignId)) { return repository.updateCampaignById(new ObjectID(campaignId), validateData) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const getCreativesByCampaignId = (campaignId) => { if (ObjectID.isValid(campaignId)) { return repository.getCampaignById(new ObjectID(campaignId)) .then(campaign => { if (!campaign) return Promise.reject(CONSTS.CODE.WRONG_PARAM) return rp({ uri: `http://${process.env.CREATIVE_SERVICE_URL}/creatives?filter={"_id":{"$in":${JSON.stringify(campaign.creatives)}}}`, json: true }) .then(res => { console.log('res', res) return Promise.resolve(res.data) }) }) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const unlinkCampaignFromZoneId = (campaignId, zoneId) => { if (ObjectID.isValid(creativeId) || ObjectID.isValid(zoneId)) { zoneId = new ObjectID(zoneId); return repository.getZoneById(zoneId) .then(zone => { zone.campaigns = zone.campaigns.filter(campaign => campaign.toString() != campaignId) return repository.updateZoneById(zoneId, { campaigns: zone.campaigns }) }) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const updateZoneById = (zoneId, update) => { let validateData = model.validate(update, model.editZone); if (validateData && ObjectID.isValid(zoneId)) { return repository.updateZoneById(new ObjectID(zoneId), update) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const getCreativeById = creativeId => { if (ObjectID.isValid(creativeId)) { return repository.getCreativeById(new ObjectID(creativeId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const removeZoneById = zoneId => { if (ObjectID.isValid(zoneId)) { return repository.removeZoneById(new ObjectID(zoneId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const removeCampaignById = campaignId => { if (ObjectID.isValid(campaignId)) { return repository.removeCampaignById(new ObjectID(campaignId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const getZoneById = zoneId => { if (ObjectID.isValid(zoneId)) { return repository.getZoneById(new ObjectID(zoneId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }
const removeCreativeById = creativeId => { if (ObjectID.isValid(creativeId)) { return repository.removeCreativeById(new ObjectID(creativeId)) } else return Promise.reject(CONSTS.CODE.WRONG_PARAM) }