diff --git a/ghost/members-api/index.js b/ghost/members-api/index.js index 695ae8203e..f373d7c52b 100644 --- a/ghost/members-api/index.js +++ b/ghost/members-api/index.js @@ -44,6 +44,7 @@ module.exports = function MembersApi({ } let users = Users({ + stripe, createMember, getMember, deleteMember, diff --git a/ghost/members-api/lib/users.js b/ghost/members-api/lib/users.js index 22d24af370..8c21f4a259 100644 --- a/ghost/members-api/lib/users.js +++ b/ghost/members-api/lib/users.js @@ -1,13 +1,40 @@ module.exports = function ({ + stripe, createMember, getMember, listMembers, deleteMember }) { + async function get(data, options) { + const member = await getMember(data, options); + if (!member) { + return member; + } + if (!stripe) { + return Object.assign(member, { + plans: [] + }); + } + try { + const subscription = await stripe.getSubscription(member); + if (subscription.status !== 'active') { + return Object.assign(member, { + plans: [] + }); + } + + return Object.assign(member, { + plans: [subscription.plan] + }); + } catch (err) { + return null; + } + } + return { create: createMember, list: listMembers, - get: getMember, + get, destroy: deleteMember }; };