mirror of
https://github.com/koodiklinikka/koodiklinikka.fi-api.git
synced 2026-01-26 03:34:03 +00:00
flatten google config structure, add address fields
This commit is contained in:
@@ -18,11 +18,9 @@
|
||||
"tokenSecret": ""
|
||||
},
|
||||
"google": {
|
||||
"spreadsheet_id": "",
|
||||
"credentials": {
|
||||
"client_email": "",
|
||||
"private_key": ""
|
||||
}
|
||||
"spreadsheetId": "",
|
||||
"clientEmail": "",
|
||||
"privateKey": ""
|
||||
}
|
||||
},
|
||||
"production": {
|
||||
|
||||
@@ -9,42 +9,44 @@ var slack = require('../services/slack');
|
||||
var config = require('../lib/config');
|
||||
var stripe = require('stripe')(config.stripe.secretKey);
|
||||
|
||||
function log(message) {
|
||||
console.log(message);
|
||||
slack.createMessage(message);
|
||||
}
|
||||
|
||||
function addNewMemberToSheets(name, email, residence, slackHandle) {
|
||||
function addNewMemberToSheets(data, callback) {
|
||||
var {name, email, address, postcode, city, handle} = data;
|
||||
var doc = new GoogleSpreadsheet(config.google.spreadsheet_id);
|
||||
var sheet;
|
||||
|
||||
async.series([
|
||||
function setAuth(step) {
|
||||
async.waterfall([
|
||||
function setAuth(cb) {
|
||||
console.log('Start Google Spreadsheed auth.');
|
||||
doc.useServiceAccountAuth(config.google.credentials, step);
|
||||
doc.useServiceAccountAuth({
|
||||
clientEmail: config.google.clientEmail,
|
||||
privateKey: config.google.privateKey
|
||||
}, () => cb());
|
||||
},
|
||||
function getInfoAndWorksheets(step) {
|
||||
function getInfoAndWorksheets(cb) {
|
||||
console.log('Start Google Spreadsheet info fetch.');
|
||||
doc.getInfo(function(err, info) {
|
||||
sheet = info.worksheets[0];
|
||||
step();
|
||||
cb(null, info.worksheets[0]);
|
||||
});
|
||||
},
|
||||
function addRow(step) {
|
||||
function addRow(sheet, cb) {
|
||||
console.log('Start Google Spreadsheet row write.');
|
||||
sheet.addRow({
|
||||
'jäsenmaksu': true,
|
||||
'koko nimi': name,
|
||||
'liittymispäivä': moment().format('DD.MM.YYYY'),
|
||||
'lisääjä': 'Koodiklinikka.fi-api',
|
||||
'paikkakunta': residence,
|
||||
'slack': slackHandle,
|
||||
'katuosoite': address,
|
||||
'postinumero': postcode,
|
||||
'paikkakunta': city,
|
||||
'slack': handle,
|
||||
'sähköposti': email
|
||||
}, function(err){
|
||||
console.log(`Error: ${err}`);
|
||||
});
|
||||
}, cb);
|
||||
}
|
||||
], function(err){
|
||||
if( err ) {
|
||||
console.log(`Error: ${err}`);
|
||||
}
|
||||
});
|
||||
], callback);
|
||||
}
|
||||
|
||||
module.exports = function (app) {
|
||||
@@ -56,33 +58,26 @@ module.exports = function (app) {
|
||||
console.log(`Start membership addition with body: ${JSON.stringify(req.body)}`);
|
||||
|
||||
stripe.charges.create({
|
||||
amount: 1000,
|
||||
amount: config.membership.price,
|
||||
card: req.body.stripeToken,
|
||||
currency: 'eur',
|
||||
description: `Koodiklinikka ry jäsenyys: ${req.body.name}`
|
||||
|
||||
}, function(err, charge) {
|
||||
if (err) {
|
||||
console.log(JSON.stringify(err, null, 2));
|
||||
|
||||
var message = 'Membership payment FAILED for: ```' + JSON.stringify(req.body) + '``` Reason: ```' + err + '```';
|
||||
console.log(message);
|
||||
slack.createMessage(message);
|
||||
|
||||
res.status(500).send({status_text: 'payment_error'});
|
||||
log(`Membership payment FAILED for: ${JSON.stringify(req.body)}. Reason: ${err.message}`);
|
||||
res.status(500).send('payment_error');
|
||||
return;
|
||||
|
||||
} else {
|
||||
var message = 'Membership payment SUCCESS for: ```' + JSON.stringify(req.body) + '```';
|
||||
console.log(message);
|
||||
slack.createMessage(message);
|
||||
|
||||
addNewMemberToSheets(req.body.userInfo.name, req.body.userInfo.email, req.body.userInfo.residence, req.body.userInfo.handle);
|
||||
|
||||
res.status(200).send({status_text: 'payment_success'});
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
log(`Membership payment SUCCESSFUL for: ${JSON.stringify(req.body)}`);
|
||||
addNewMemberToSheets(req.body.userInfo, (err) => {
|
||||
if(err) {
|
||||
log(`Storing membership info FAILED for: ${JSON.stringify(req.body)}. Reason: ${err.message}`);
|
||||
res.status(500).send('membership_storage_error');
|
||||
return;
|
||||
}
|
||||
res.status(200).send('payment_success');
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user