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