UNPKG

@speakr/speakr-module-services

Version:
63 lines (56 loc) 1.39 kB
"use strict"; const db = require('../../db/'); module.exports = { deleteOneNetwork, }; function deleteOneNetwork(options) { let network; return db.networks.findOne({ where: { id_hash: options.network_id_hash } }) .then(networkObj => { network = networkObj; const ids = options.accounts.map(account => account.id); return db.accounts_networks.destroy({ where: { account_id: { $in: ids }, network_id: network.id } }) }) .then(() => { return db.influencers_networks.destroy({ where: { influencer_id: options.influencers.id, network_id: network.id } }) }) .then(() => { const ids = options.accounts.map(account => account.id); return db.accounts_networks.findAll({ where: { account_id: { $in: ids }, } }) }) .then(accounts_networks => { const network_ids = accounts_networks.map(an => an.network_id); // look up networks and add to options.networks return db.networks.findAll({ attributes: ['id', 'name', 'id_hash'], where: { id: { $in: network_ids } } }) }) .then(networks => { return options.networks = networks; }) .then(() => Promise.resolve(options)) .catch((error) => { return Promise.reject({ code: 400, message: 'Could not remove account from network.', purpose: 'Something went wrong removing account from network.' + error }) }); }