forest-express
Version:
Official package for all Forest Express Lianas
29 lines (28 loc) • 1.15 kB
JavaScript
;
var P = require('bluebird');
function SubscriptionGetter(Implementation, params, opts, integrationInfo) {
var stripe = opts.integrations.stripe.stripe(opts.integrations.stripe.apiKey);
function getSubscription(subscriptionId) {
return new P(function (resolve, reject) {
stripe.subscriptions.retrieve(subscriptionId, function (error, subscription) {
if (error) {
return reject(error);
}
return resolve(subscription);
});
});
}
this.perform = function () {
var collectionModel = integrationInfo.collection,
collectionFieldName = integrationInfo.field,
embeddedPath = integrationInfo.embeddedPath;
var fieldName = embeddedPath ? "".concat(collectionFieldName, ".").concat(embeddedPath) : collectionFieldName;
return getSubscription(params.subscriptionId).then(function (subscription) {
return Implementation.Stripe.getCustomerByUserField(collectionModel, fieldName, subscription.customer).then(function (customer) {
subscription.customer = customer;
return subscription;
});
});
};
}
module.exports = SubscriptionGetter;