UNPKG

@speakr/speakr-module-services

Version:
84 lines (76 loc) 4.24 kB
"use strict"; module.exports = { publicData }; function publicData(options) { var d = new Date(); d.setHours(0,0,0,0); options.notifications = options.notifications.map(notification => { let creative = notification.creative; let invite = notification.invite; let line_item = notification.line_item; if (notification.creative) { creative = { id_hash: creative.id_hash, submission_status: creative.submission_status, offer_price: `$${parseFloat(creative.offer_price).toFixed(2)}`, scheduled_at: creative.scheduled_at, campaign: { disapproved_words: creative.invite.initiative.disapproved_words, required_words: creative.invite.initiative.required_words, id_hash: creative.invite.id_hash, current_username: creative.invite.account.current_username, brand: creative.invite.initiative.campaign.brand.name, campaign: creative.invite.initiative.campaign.title, initiative: creative.invite.initiative.name, network: creative.invite.initiative.network.name, platform: creative.invite.initiative.platform ? creative.invite.initiative.platform.name : null, product_type: creative.invite.initiative.product == 'Content Distribution' ? 'Brand Provided' : 'User Created', media_type: creative.invite.initiative.user_created_media_type ? creative.invite.initiative.user_created_media_type.charAt(0).toUpperCase() + creative.invite.initiative.user_created_media_type.slice(1) : null, offer_price: creative.invite.initiative.payment_type == 'Special' ? 'Special' : (!!creative.invite.offer_price ? `$${parseFloat(creative.invite.offer_price).toFixed(2)}` : null), end_time: creative.invite.initiative.end_date, status: parseInt(creative.invite.creatives.length) > 0 ? `${creative.invite.creatives.length} submission(s)` : (creative.invite.created_at > (new Date().getDate() - 2) ? 'New' : (creative.invite.initiative.end_date < new Date()) ? 'Expired' : ''), instructions_json: creative.invite.initiative.instructions_json, daily_creative_limit: { allowed: creative.invite.initiative.posts_per_day, remaining: creative.invite.initiative.posts_per_day - creative.invite.creatives.filter(creative => creative.created_at > d).length } } }; } if (notification.invite) { invite = { disapproved_words: invite.initiative.disapproved_words, required_words: invite.initiative.required_words, id_hash: invite.id_hash, current_username: invite.account ? invite.account.current_username : null, brand: invite.initiative.campaign.brand.name, campaign: invite.initiative.campaign.title, initiative: invite.initiative.name, network: invite.initiative.network.name, platform: invite.initiative.platform ? invite.initiative.platform.name : null, product_type: invite.initiative.product == 'Content Distribution' ? 'Brand Provided' : 'User Created', media_type: invite.initiative.user_created_media_type ? invite.initiative.user_created_media_type.charAt(0).toUpperCase() + invite.initiative.user_created_media_type.slice(1) : null, offer_price: invite.initiative.payment_type == 'Special' ? 'Special' : (!!invite.offer_price ? `$${parseFloat(invite.offer_price).toFixed(2)}` : null), end_time: invite.initiative.end_date, status: parseInt(invite.creatives.length) > 0 ? `${invite.creatives.length} submission(s)` : (invite.created_at > (new Date().getDate() - 2) ? 'New' : (invite.initiative.end_date < new Date()) ? 'Expired' : ''), instructions_json: invite.initiative.instructions_json, daily_creative_limit: { allowed: invite.initiative.posts_per_day, remaining: invite.initiative.posts_per_day - invite.creatives.filter(creative => creative.created_at > d).length } }; } return { type: notification.type, created_at: notification.created_at, creative: creative, invite: invite, line_item: line_item }; }); return Promise.resolve(options); }