diff --git a/core/server/api/canary/index.js b/core/server/api/canary/index.js index cc7d5bf4fc..ceb4206e09 100644 --- a/core/server/api/canary/index.js +++ b/core/server/api/canary/index.js @@ -71,6 +71,10 @@ module.exports = { return shared.pipeline(require('./settings'), localUtils); }, + get membersStripeConnect() { + return shared.pipeline(require('./membersStripeConnect'), localUtils); + }, + get members() { return shared.pipeline(require('./members'), localUtils); }, diff --git a/core/server/api/canary/membersStripeConnect.js b/core/server/api/canary/membersStripeConnect.js new file mode 100644 index 0000000000..6ef3462d62 --- /dev/null +++ b/core/server/api/canary/membersStripeConnect.js @@ -0,0 +1,18 @@ +const membersService = require('../../services/members'); + +module.exports = { + docName: 'members_stripe_connect', + auth: { + permissions: true, + query(frame) { + // This is something you have to do if you want to use the "framework" with access to the raw req/res + frame.response = async function (req, res) { + function setSessionProp(prop, val) { + req.session[prop] = val; + } + const stripeConnectAuthURL = await membersService.stripeConnect.getStripeConnectOAuthUrl(setSessionProp); + return res.redirect(stripeConnectAuthURL); + }; + } + } +}; diff --git a/core/server/web/api/canary/admin/routes.js b/core/server/web/api/canary/admin/routes.js index 3cabd21d3e..06fa13d9e2 100644 --- a/core/server/web/api/canary/admin/routes.js +++ b/core/server/web/api/canary/admin/routes.js @@ -97,6 +97,8 @@ module.exports = function apiRoutes() { http(apiCanary.members.importCSV) ); + router.get('/members/stripe_connect', shared.middlewares.labs.members, mw.authAdminApi, http(apiCanary.membersStripeConnect.auth)); + router.get('/members/:id', shared.middlewares.labs.members, mw.authAdminApi, http(apiCanary.members.read)); router.put('/members/:id', shared.middlewares.labs.members, mw.authAdminApi, http(apiCanary.members.edit)); router.del('/members/:id', shared.middlewares.labs.members, mw.authAdminApi, http(apiCanary.members.destroy));