mirror of
https://github.com/koodiklinikka/koodiklinikka.fi-api.git
synced 2026-01-26 11:44:12 +00:00
add functionality for writing new member to google sheets
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
"cors": "^2.7.1",
|
||||
"express": "^4.11.0",
|
||||
"lodash": "^3.10.1",
|
||||
"moment": "^2.18.1",
|
||||
"morgan": "^1.5.1",
|
||||
"newrelic": "^1.18.0",
|
||||
"node-twitter": "0.5.2",
|
||||
|
||||
@@ -1,10 +1,54 @@
|
||||
'use strict';
|
||||
|
||||
var Promise = require('bluebird');
|
||||
var Promise = require('bluebird');
|
||||
var GoogleSpreadsheet = require('google-spreadsheet');
|
||||
var async = require('async');
|
||||
var moment = require('moment');
|
||||
|
||||
// spreadsheet key is the long id in the sheets URL
|
||||
var doc = new GoogleSpreadsheet('1BUL1pjaXVlO5MRuOk-W5MEmKqxfzGnj7eFMif8tIVaU');
|
||||
var sheet;
|
||||
|
||||
var slack = require('../services/slack');
|
||||
var config = require('../lib/config');
|
||||
var stripe = require('stripe')(config.stripe.secretKey);
|
||||
|
||||
|
||||
function addNewMemberToSheets(name, email, residence, slackHandle) {
|
||||
async.series([
|
||||
function setAuth(step) {
|
||||
console.log('Start Google Spreadsheed auth.');
|
||||
var creds = require('../Koodiklinikka-f802649bba5e.json');
|
||||
doc.useServiceAccountAuth(creds, step);
|
||||
},
|
||||
function getInfoAndWorksheets(step) {
|
||||
console.log('Start Google Spreadsheet info fetch.');
|
||||
doc.getInfo(function(err, info) {
|
||||
sheet = info.worksheets[0];
|
||||
step();
|
||||
});
|
||||
},
|
||||
function workingWithRows(step) {
|
||||
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,
|
||||
'sähköposti': email
|
||||
}, function(err){
|
||||
console.log(`Error: ${err}`);
|
||||
});
|
||||
}
|
||||
], function(err){
|
||||
if( err ) {
|
||||
console.log(`Error: ${err}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = function (app) {
|
||||
/*
|
||||
* POST /membership
|
||||
@@ -35,6 +79,8 @@ module.exports = function (app) {
|
||||
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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user