summaryrefslogtreecommitdiff
path: root/server/lib/webhook/index.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-01-20 00:10:23 -0500
committerJules Laplace <jules@okfoc.us>2015-01-20 00:10:23 -0500
commit717e87b7422db8e1eda655fbf04e45fe5f877c9b (patch)
tree391531defbea8e312a49e635c1568f66f248ac82 /server/lib/webhook/index.js
parent904a18b763889c9f85d874388fdff9daaefb89cd (diff)
combining webhook stuff
Diffstat (limited to 'server/lib/webhook/index.js')
-rw-r--r--server/lib/webhook/index.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/server/lib/webhook/index.js b/server/lib/webhook/index.js
new file mode 100644
index 0000000..c4b4b76
--- /dev/null
+++ b/server/lib/webhook/index.js
@@ -0,0 +1,88 @@
+// // where should this live?
+// app.get('/subscribe/webhook', views.subscription.webhook);
+
+/* jshint node: true */
+
+var User = require('../schemas/User'),
+ Subscription = require('../schemas/Subscription'),
+ config = require('../../../config'),
+ middleware = require('../middleware'),
+ util = require('../util'),
+ _ = require('lodash'),
+ moment = require('moment'),
+ xml2js = require('xml2js'),
+ Recurly = require('node-recurly'),
+ recurly = new Recurly(require('./config'));
+
+var parser = new xml2js.Parser();
+// fs.readFile('./foo.xml', function(err, data) {
+// parser.parseString(data, function (err, result) {
+// console.log(inspect(result, { colors: true, depth: Infinity }));
+// });
+// });
+
+/*
+app.use(express.basicAuth(function(user, pass, callback) {
+ var result = (user === 'testUser' && pass === 'testPass');
+ callback(null, result);
+}));
+*/
+
+var subscription = module.exports = {
+
+ callbacks: {
+ // accounts
+ new_account_notification: function(data){
+ },
+ canceled_account_notification: function(data){
+ },
+ billing_info_updated_notification: function(data){
+ },
+ reactivated_account_notification: function(data){
+ },
+
+ // invoices
+ new_invoice_notification: function(data){
+ },
+ closed_invoice_notification: function(data){
+ },
+ past_due_invoice_notification: function(data){
+ },
+
+ // subscriptions
+ new_subscription_notification: function(data){
+ },
+ updated_subscription_notification: function(data){
+ },
+ canceled_subscription_notification: function(data){
+ },
+ expired_subscription_notification: function(data){
+ },
+ renewed_subscription_notification: function(data){
+ },
+
+ // payments
+ successful_payment_notification: function(data){
+ },
+ failed_payment_notification: function(data){
+ },
+ successful_refund_notification: function(data){
+ },
+ void_payment_notification: function(data){
+ },
+ },
+
+ // need a route for the webhook,
+ // then calls to get appropriate info from the recurly api
+ webhook: function(req, res){
+ res.status(200).end()
+ parser.parseString(data, function (err, result) {
+ console.log(inspect(result, { colors: true, depth: Infinity }));
+ for (var i in data) {
+ if (subscription.callbacks[i]) {
+ subscription.callbacks[i](data[i])
+ }
+ }
+ });
+ },
+}