UNPKG

@speakr/speakr-module-services

Version:
72 lines (67 loc) 1.83 kB
'use strict'; const db = require('../../db'); module.exports = { isExternal, exists }; function exists(options) { return db.accounts.findOne({ where: { platform_id: options.platforms.id, platform_user_id: options.id, deleted_at: null }}) .then(account => { if (!!account) { return db.accounts.findOne({ where: { parent_id: account.id, deleted_at: null }}) .then(childAccount => { if (!!childAccount) { return Promise.reject('account_exists'); } else { return Promise.resolve(options); } }) } else { return Promise.resolve(options); } }); } function isExternal(network_id, influencer_id, platform_id, account_username) { if(!account_username) { account_username = 'unknown'; } return db.accounts.findOne({ where: { influencer_id: influencer_id, platform_id: platform_id }, include: {model: db.accounts_networks, where: {network_id: network_id }} }) .then(accountObj => { if (!accountObj) { return db.influencers.findOne({ where: { id: influencer_id } }) .then(inf => { let influencer; if(inf) { influencer = inf.dataValues ? inf.dataValues : inf; } else { influencer = {}; } return true; // return db.Sequelize.Promise.reject({ // error: `Error with account ${account_username}. The influencer ${influencer.first_name || 'unknown'} ${influencer.last_name || 'unknown'} (email: ${influencer.email || 'unknown'}) does not have an account in your network.`, // message: `Edit your csv and try again.`, // code: 404 // }); }); } else { return accountObj.accounts_networks.external; } }); }