mirror of
https://github.com/koodiklinikka/koodiklinikka.fi-api.git
synced 2026-01-26 03:34:03 +00:00
Merge pull request #9 from koodiklinikka/remove-stripe-payment
remove stripe payment
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
{
|
||||
"development": {
|
||||
"stripe": {
|
||||
"secretKey": ""
|
||||
},
|
||||
"slack": {
|
||||
"token": "",
|
||||
"privateChannel": "",
|
||||
@@ -24,9 +21,6 @@
|
||||
}
|
||||
},
|
||||
"production": {
|
||||
"stripe": {
|
||||
"secretKey": ""
|
||||
},
|
||||
"slack": {
|
||||
"token": "",
|
||||
"privateChannel": "",
|
||||
@@ -42,6 +36,5 @@
|
||||
"tokenSecret": ""
|
||||
}
|
||||
},
|
||||
"all": {
|
||||
}
|
||||
"all": {}
|
||||
}
|
||||
|
||||
1161
package-lock.json
generated
1161
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -33,10 +33,9 @@
|
||||
"morgan": "^1.5.1",
|
||||
"newrelic": "^1.18.0",
|
||||
"node-twitter": "0.5.2",
|
||||
"stripe": "^4.23.1",
|
||||
"snyk": "^1.38.1",
|
||||
"superagent": "^2.0.0",
|
||||
"validator": "^3.27.0",
|
||||
"snyk": "^1.38.1"
|
||||
"validator": "^3.27.0"
|
||||
},
|
||||
"snyk": true
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ var Joi = require('joi');
|
||||
|
||||
var slack = require('../services/slack');
|
||||
var config = require('../lib/config');
|
||||
var stripe = require('stripe')(config.stripe.secretKey);
|
||||
var validateRequest = require('../utils/validateRequest');
|
||||
|
||||
function log(message) {
|
||||
@@ -17,21 +16,25 @@ function log(message) {
|
||||
}
|
||||
|
||||
function addNewMemberToSheets(data, callback) {
|
||||
var {name, email, address, postcode, city, handle} = data;
|
||||
var { name, email, address, postcode, city, handle } = data;
|
||||
var doc = new GoogleSpreadsheet(config.google.spreadsheetId);
|
||||
|
||||
async.waterfall([
|
||||
async.waterfall(
|
||||
[
|
||||
function setAuth(cb) {
|
||||
console.log('Start Google Spreadsheed auth.');
|
||||
doc.useServiceAccountAuth({
|
||||
doc.useServiceAccountAuth(
|
||||
{
|
||||
client_email: config.google.clientEmail,
|
||||
private_key: config.google.privateKey
|
||||
}, (err) => cb(err));
|
||||
private_key: config.google.privateKey,
|
||||
},
|
||||
err => cb(err),
|
||||
);
|
||||
},
|
||||
function getInfoAndWorksheets(cb) {
|
||||
console.log('Start Google Spreadsheet info fetch.');
|
||||
doc.getInfo(function(err, info) {
|
||||
if(err) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
} else {
|
||||
cb(null, info.worksheets[0]);
|
||||
@@ -40,22 +43,27 @@ function addNewMemberToSheets(data, callback) {
|
||||
},
|
||||
function addRow(sheet, cb) {
|
||||
console.log('Start Google Spreadsheet row write.');
|
||||
sheet.addRow({
|
||||
'jäsenmaksu': true,
|
||||
sheet.addRow(
|
||||
{
|
||||
jäsenmaksu: false,
|
||||
'koko nimi': name,
|
||||
'liittymispäivä': moment().format('DD.MM.YYYY'),
|
||||
'lisääjä': 'Koodiklinikka.fi-api',
|
||||
'katuosoite': address,
|
||||
'postinumero': postcode,
|
||||
'paikkakunta': city,
|
||||
'slack': handle,
|
||||
'sähköposti': email
|
||||
}, cb);
|
||||
}
|
||||
], callback);
|
||||
liittymispäivä: moment().format('DD.MM.YYYY'),
|
||||
lisääjä: 'Koodiklinikka.fi-api',
|
||||
katuosoite: address,
|
||||
postinumero: postcode,
|
||||
paikkakunta: city,
|
||||
slack: handle,
|
||||
sähköposti: email,
|
||||
},
|
||||
cb,
|
||||
);
|
||||
},
|
||||
],
|
||||
callback,
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = function (app) {
|
||||
module.exports = function(app) {
|
||||
/*
|
||||
* POST /membership
|
||||
* Endpoint for adding a new member to the association
|
||||
@@ -68,50 +76,27 @@ module.exports = function (app) {
|
||||
handle: Joi.string().required(),
|
||||
address: Joi.string().required(),
|
||||
city: Joi.string().required(),
|
||||
postcode: Joi.string().required()
|
||||
postcode: Joi.string().required(),
|
||||
}),
|
||||
stripeToken: Joi.string().required()
|
||||
})
|
||||
});
|
||||
|
||||
app.post('/membership', validateRequest(schema), function(req, res, next) {
|
||||
console.log(
|
||||
`Start membership addition with body: ${JSON.stringify(req.body)}`,
|
||||
);
|
||||
|
||||
console.log(`Start membership addition with body: ${JSON.stringify(req.body)}`);
|
||||
|
||||
const { handle, name, email } = req.body.userInfo
|
||||
|
||||
const createCustomer = (callback) =>
|
||||
stripe.customers.create({
|
||||
description: `${handle} - ${name}`,
|
||||
email: email,
|
||||
source: req.body.stripeToken,
|
||||
metadata: req.body.userInfo
|
||||
}, callback)
|
||||
|
||||
const createSubscription = (customer, callback) =>
|
||||
stripe.subscriptions.create({
|
||||
customer: customer.id,
|
||||
plan: 'koodiklinikka'
|
||||
}, callback)
|
||||
|
||||
async.waterfall([
|
||||
createCustomer,
|
||||
createSubscription
|
||||
], (err) => {
|
||||
addNewMemberToSheets(req.body.userInfo, err => {
|
||||
if (err) {
|
||||
log(`Membership payment FAILED for: ${JSON.stringify(req.body.userInfo.email)}. Reason: ${err.message}`);
|
||||
res.status(500).send('payment_error');
|
||||
log(
|
||||
`Storing membership info FAILED for: ${JSON.stringify(
|
||||
req.body.userInfo.email,
|
||||
)}. Reason: ${err.message}`,
|
||||
);
|
||||
res.status(200).send('membership_storage_error');
|
||||
return;
|
||||
}
|
||||
|
||||
log(`Membership payment SUCCESSFUL for: ${JSON.stringify(req.body.userInfo.email)}`);
|
||||
addNewMemberToSheets(req.body.userInfo, (err) => {
|
||||
if(err) {
|
||||
log(`Storing membership info FAILED for: ${JSON.stringify(req.body.userInfo.email)}. Reason: ${err.message}`);
|
||||
res.status(500).send('membership_storage_error');
|
||||
res.status(200).send('membership_added');
|
||||
return;
|
||||
}
|
||||
res.status(200).send('payment_success');
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user