diff --git a/ghost/members-api/lib/stripe/api/customers.js b/ghost/members-api/lib/stripe/api/customers.js deleted file mode 100644 index 84b2d5daa4..0000000000 --- a/ghost/members-api/lib/stripe/api/customers.js +++ /dev/null @@ -1,12 +0,0 @@ -const createDeterministicApi = require('./createDeterministicApi'); - -const isNotDeleted = x => !x.deleted; -const getCustomerAttr = ({email}) => ({email}); -const getCustomerHashSeed = member => member.email; - -module.exports = createDeterministicApi( - 'customers', - isNotDeleted, - getCustomerAttr, - getCustomerHashSeed -); diff --git a/ghost/members-api/lib/stripe/api/index.js b/ghost/members-api/lib/stripe/api/index.js index 10d023c619..8cb5b7876b 100644 --- a/ghost/members-api/lib/stripe/api/index.js +++ b/ghost/members-api/lib/stripe/api/index.js @@ -1,6 +1,4 @@ module.exports = { - customers: require('./customers'), products: require('./products'), - plans: require('./plans'), - subscriptions: require('./subscriptions') + plans: require('./plans') }; diff --git a/ghost/members-api/lib/stripe/api/stripeRequests.js b/ghost/members-api/lib/stripe/api/stripeRequests.js index 7b8d52ef29..13b204e95e 100644 --- a/ghost/members-api/lib/stripe/api/stripeRequests.js +++ b/ghost/members-api/lib/stripe/api/stripeRequests.js @@ -1,11 +1,5 @@ const createStripeRequest = require('./createStripeRequest'); -const createSource = createStripeRequest(function (stripe, customerId, stripeToken) { - return stripe.customers.createSource(customerId, { - source: stripeToken - }); -}); - const retrieve = createStripeRequest(function (stripe, resource, id) { return stripe[resource].retrieve(id); }); @@ -19,7 +13,6 @@ const del = createStripeRequest(function (stripe, resource, id) { }); module.exports = { - createSource, retrieve, create, del diff --git a/ghost/members-api/lib/stripe/api/subscriptions.js b/ghost/members-api/lib/stripe/api/subscriptions.js deleted file mode 100644 index 90f32a56a4..0000000000 --- a/ghost/members-api/lib/stripe/api/subscriptions.js +++ /dev/null @@ -1,64 +0,0 @@ -const customers = require('./customers'); -const {del, create, createSource} = require('./stripeRequests'); - -function removeSubscription(stripe, member) { - return customers.get(stripe, member, member.email).then((customer) => { - // CASE customer has no subscriptions - if (!customer.subscriptions || customer.subscriptions.total_count === 0) { - throw new Error('Cannot remove subscription'); - } - - const subscription = customer.subscriptions.data[0]; - - return del(stripe, 'subscriptions', subscription.id); - }); -} - -function getSubscription(stripe, member) { - return customers.get(stripe, member, member.email).then((customer) => { - // CASE customer has either none or multiple subscriptions - if (!customer.subscriptions || customer.subscriptions.total_count !== 1) { - return {}; - } - - const subscription = customer.subscriptions.data[0]; - - // CASE subscription has multiple plans - if (subscription.items.total_count !== 1) { - return {}; - } - - const plan = subscription.plan; - - return { - validUntil: subscription.current_period_end, - plan: plan.nickname, - amount: plan.amount, - status: subscription.status - }; - }).catch(() => { - return {}; - }); -} - -function createSubscription(stripe, member, metadata) { - return customers.ensure(stripe, member, member.email).then((customer) => { - if (customer.subscriptions && customer.subscriptions.total_count !== 0) { - throw new Error('Customer already has a subscription'); - } - - return createSource(stripe, customer.id, metadata.stripeToken).then(() => { - return create(stripe, 'subscriptions', { - customer: customer.id, - items: [{plan: metadata.plan.id}], - coupon: metadata.coupon - }); - }); - }); -} - -module.exports = { - create: createSubscription, - get: getSubscription, - remove: removeSubscription -}; diff --git a/ghost/members-api/lib/stripe/index.js b/ghost/members-api/lib/stripe/index.js index a8be52d586..1fe590c083 100644 --- a/ghost/members-api/lib/stripe/index.js +++ b/ghost/members-api/lib/stripe/index.js @@ -69,16 +69,4 @@ module.exports = class StripePaymentProcessor { return session; } - - async getSubscription(member) { - return api.subscriptions.get(this._stripe, member); - } - - async removeSubscription(member) { - return api.subscriptions.remove(this._stripe, member); - } - - async removeCustomer(member) { - return api.customers.remove(this._stripe, member); - } };