//sync sequential execution
Promise.resolve()
.then(function(){
return promotionDistributionModel.deleteStoreCampaignTargets(dbName, campaignId, data.organizationId)
})
.then(function(){
return promotionDistributionModel.addStoreCampaignTargets(dbName, campaignId, targets)
})
.then(function(){
return promotionDistributionModel.deleteStoreCampaignStatus(dbName, campaignId, data.organizationId)
})
.then(function(){
return promotionDistributionModel.addStoreCampaignStatus(dbName, campaignId, data.organizationId)
})
.then(trx.commit)
.catch(trx.rollback);
//async execute in random order
Promise.all([
promotionDistributionModel.deleteStoreCampaignTargets(dbName, campaignId, data.organizationId),
promotionDistributionModel.addStoreCampaignTargets(dbName, campaignId, targets),
promotionDistributionModel.deleteStoreCampaignStatus(dbName, campaignId, data.organizationId),
promotionDistributionModel.addStoreCampaignStatus(dbName, campaignId, data.organizationId)
])
.then(trx.commit)
.catch(trx.rollback);