/* 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'); 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 })); // }); // }); var subscription = module.exports = { fields: [ // accounts "new_account_notification", "canceled_account_notification", "billing_info_updated_notification", "reactivated_account_notification", // invoices "new_invoice_notification", "closed_invoice_notification", "past_due_invoice_notification", // subscriptions "new_subscription_notification", "updated_subscription_notification", "canceled_subscription_notification", "expired_subscription_notification", "renewed_subscription_notification", // payments "successful_payment_notification", "failed_payment_notification", "successful_refund_notification", "void_payment_notification", ], middleware: { }, 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) } } }); }, }