add endpoint for membership payments

This commit is contained in:
Keksike
2017-07-02 19:36:29 +03:00
parent 680715c262
commit c8f1828858
4 changed files with 39 additions and 2 deletions

View File

@@ -23,8 +23,9 @@ app.use(morgan(':method :url :status :response-time ms - :res[content-length] :b
require('./routes/invite')(app);
require('./routes/members')(app);
require('./routes/feeds')(app);
require('./routes/membership')(app);
app.use(function(err, req, res, next) {
app.use(function(err, req, res, next) {
/*jshint unused:false*/
console.error(err);
res.status(500).send('Internal server error');

View File

@@ -27,6 +27,7 @@
"morgan": "^1.5.1",
"newrelic": "^1.18.0",
"node-twitter": "0.5.2",
"stripe": "^4.23.1",
"superagent": "^0.21.0",
"validator": "^3.27.0"
}

View File

@@ -16,7 +16,7 @@ module.exports = function (app) {
return res.status(400).send('invalid_email');
}
function success() {
function success() {
res.status(200).end();
}

35
routes/membership.js Normal file
View File

@@ -0,0 +1,35 @@
'use strict';
var Promise = require('bluebird');
var slack = require('../services/slack');
var config = require('../lib/config');
var stripe = require('stripe')(config.stripe.secretKey);
module.exports = function (app) {
/*
* POST /membership
* Endpoint for adding a new member to the association
*/
app.post('/membership', function(req, res, next) {
stripe.charges.create({
amount: 1000,
currency: 'eur',
card: req.body.stripeToken,
description: `Koodiklinikka jäsenyys henkilölle: ${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 + '```';
slack.createMessage(message);
res.status(500).send({message: 'payment_error'});
return;
} else {
var message = 'Membership payment SUCCESS for: ```' + JSON.stringify(req.body) + '```';
slack.createMessage(message);
res.status(200).send({message: 'payment_success'});
}
});
});
};