@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
63 lines (56 loc) • 1.39 kB
JavaScript
;
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
})
});
}