@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
54 lines (45 loc) • 1.16 kB
JavaScript
;
const db = require('../../db');
module.exports = {
create,
withInfluencerData,
byInfluencer
};
function byInfluencer(options) {
let date = new Date();
date = new Date(date.getFullYear(), date.getMonth() + 1, 1);
return Promise.all(options.networks.map(network =>
db.invoices.findOrCreate({
where: {
status: 'pending',
influencer_id: options.influencers.id,
network_id: network.id
},
include: [db.line_items],
defaults: {
due_at: date,
paypal_email: options.influencers.paypal_email
}
})))
.then((invoices) => {
options.invoices = invoices;
return Promise.resolve(options);
});
}
function create(config) {
return db.invoices.create(config, {returning:true})
.then((invoice) => {
return db.invoices.findOne({
where: {id: invoice.id},
include: [db.line_items]
});
});
}
function withInfluencerData(influencer_id, paypal_email, network_id) {
return db.invoices.create({
influencer_id: influencer_id,
paypal_email: paypal_email,
status: 'pending',
network_id: network_id
});
}