Skip to content
4 changes: 2 additions & 2 deletions lib/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
// 200–299 success
if (res.statusCode >= 200 && res.statusCode <= 299) {
if (responsedata === '') {
return _cb(res);
return _cb(res, new Error('Response has no data'));
}
return parser.parseString(responsedata, function (err, result) {
return _cb(res, null, result);
Expand Down Expand Up @@ -83,7 +83,7 @@
}
if (callback.length === 2) {
if (err) {
return callback(_wrap_response(res, err));
return callback(err, _wrap_response(res, null));
}
return callback(null, _wrap_response(res, data));

Expand Down
48 changes: 28 additions & 20 deletions lib/recurly.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
var Js2xml = require('js2xml').Js2Xml,
Client = require('./client'),
utils = require('./utils'),
_ = require('lodash'),
url = require('url'),
router = require('./routes/');

module.exports = function(config){
Expand All @@ -13,6 +15,7 @@
list: function(callback, filter){
t.request(utils.addQueryParams(routes.accounts.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.accounts.list, 'accounts', 'account'),
get: function(accountcode, callback){
t.request(utils.addParams(routes.accounts.get, {account_code: accountcode}), callback);
},
Expand All @@ -26,9 +29,9 @@
t.request(utils.addParams(routes.accounts.close, {account_code: accountcode}), callback);
},
reopen: function(accountcode, callback){
t.request(utils.addParams(routes.accounts.reopen, {account_code: accountcode}), callback)
t.request(utils.addParams(routes.accounts.reopen, {account_code: accountcode}), callback);
}
}
};

this.adjustments = {
get: function(accountcode, callback){
Expand All @@ -40,7 +43,7 @@
remove: function(uuid, callback){
t.request(utils.addParams(routes.adjustments.remove, {uuid: uuid}), callback);
}
}
};

//http://docs.recurly.com/api/billing-info
this.billingInfo = {
Expand All @@ -53,13 +56,14 @@
remove: function(accountcode, callback){
t.request(utils.addParams(routes.billingInfo.remove, {account_code: accountcode} ), callback);
}
}
};

//http://docs.recurly.com/api/coupons
this.coupons = {
list: function(callback, filter){
t.request(utils.addQueryParams(routes.coupons.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.coupons.list, 'coupons', 'coupon'),
get: function(couponcode, callback){
t.request(utils.addParams(routes.coupons.get, {coupon_code: couponcode}), callback);
},
Expand All @@ -69,7 +73,7 @@
deactivate: function(couponcode, callback){
t.request(utils.addParams(routes.coupons.deactivate, {coupon_code: couponcode}), callback);
}
}
};

this.couponRedemption = {
redeem: function(couponcode, details, callback){
Expand All @@ -82,20 +86,21 @@
t.request(utils.addParams(routes.couponRedemption.remove, {account_code: accountcode}), callback);
},
getByInvoice: function(invoicenumber, callback){
t.request(utils.addParams(routes.couponRedemption.getByInvoice, {invoice_number: invoicenumber}), callback)
t.request(utils.addParams(routes.couponRedemption.getByInvoice, {invoice_number: invoicenumber}), callback);
}
}
};

this.invoices = {
list: function(callback, filter){
t.request(utils.addQueryParams(routes.invoices.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.invoices.list, 'invoices', 'invoice'),
listByAccount: function(accountcode, callback, filter){
t.request(
utils.addParams(
utils.addQueryParams(routes.invoices.listByAccount, filter)
, {account_code: accountcode})
, callback)
utils.addQueryParams(routes.invoices.listByAccount, filter),
{account_code: accountcode}),
callback);
},
get: function(invoicenumber, callback){
t.request(utils.addParams(routes.invoices.get, {invoice_number: invoicenumber}), callback);
Expand All @@ -109,12 +114,13 @@
markFailed: function(invoicenumber, callback){
t.request(utils.addParams(routes.invoices.markFailed, {invoice_number: invoicenumber}), callback);
}
}
};

this.plans = {
list: function(callback, filter){
t.request(utils.addQueryParams(routes.plans.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.plans.list, 'plans', 'plan'),
get: function(plancode, callback){
t.request(utils.addParams(routes.plans.get, {plan_code: plancode}), callback);
},
Expand All @@ -127,12 +133,13 @@
remove: function(plancode, callback){
t.request(utils.addParams(routes.plans.remove, {plan_code: plancode}), callback);
}
}
};

this.planAddons = {
list: function(plancode, callback, filter){
t.request(utils.addParams(utils.addQueryParams(routes.planAddons.list, filter), {plan_code: plancode}), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.planAddons.list, 'add_ons', 'ad_on'),
get: function(plancode, addoncode, callback){
t.request(utils.addParams(routes.planAddons.get, {plan_code: plancode, addon_code: addoncode}), callback);
},
Expand All @@ -141,24 +148,24 @@
},
update: function(plancode, addoncode, details, callback){
t.request(utils.addParams(
routes.planAddons.update,
routes.planAddons.update,
{ plan_code: plancode,
add_on_code: addoncode
}),
}),
callback, new Js2xml('add_on', details).toString());
},
remove: function(plancode, addoncode, callback){
t.request(utils.addParams(routes.planAddons.remove, {plan_code: plancode, add_on_code: addoncode}), callback);
}
}
};

this.subscriptions = {
list: function(callback, filter){
t.request(utils.addQueryParams(routes.subscriptions.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.subscriptions.list, 'subscriptions', 'subscription'),
listByAccount: function(accountcode, callback){
t.request(utils.addParams(routes.subscriptions.listByAccount, {account_code: accountcode}), callback);

},
get: function(uuid, callback){
t.request(utils.addParams(routes.subscriptions.get, {uuid: uuid}), callback);
Expand All @@ -181,12 +188,13 @@
postpone: function(uuid, nextRenewalDate, callback){
t.request(utils.addParams(routes.subscriptions.postpone, {uuid: uuid, next_renewal_date: nextRenewalDate}), callback);
}
}
};

this.transactions = {
list: function(callback, filter){
t.request(utils.addQueryParams(routes.transactions.list, filter), callback);
},
eachSeries: utils.makeEachSeriesIterator(t, routes.transactions.list, 'transactions', 'transaction'),
listByAccount: function(accountCode, callback, filter){
t.request(
utils.addParams(
Expand All @@ -204,8 +212,8 @@
if(amount){
route = utils.addQueryParams(route, { amount_in_cents: amount });
}
t.request(route, callback)
t.request(route, callback);
}
}
}//end class
};
}; //end class
})();
2 changes: 1 addition & 1 deletion lib/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var routes = {
'v2': require('./v2')
'v2': require('./v2')
};


Expand Down
20 changes: 10 additions & 10 deletions lib/routes/v2.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,33 @@ exports.accounts = {
update: ['/v2/accounts/:account_code', 'PUT'],
close: ['/v2/accounts/:account_code', 'DELETE'],
reopen: ['/v2/accounts/:account_code/reopen', 'PUT']
}
};

exports.adjustments = {
get: ['/v2/accounts/:account_code/adjustments', 'GET'],
create: ['/v2/accounts/:account_code/adjustments', 'POST'],
remove: ['/v2/adjustments/:uuid', 'DELETE']
}
};

exports.billingInfo = {
get: ['/v2/accounts/:account_code/billing_info', 'GET'],
update: ['/v2/accounts/:account_code/billing_info', 'PUT'],
remove: ['/v2/accounts/:account_code/billing_info', 'DELETE']
}
};

exports.coupons = {
list: ['/v2/coupons', 'GET'],
get: ['/v2/coupons/:coupon_code', 'GET'],
create: ['/v2/coupons', 'POST'],
deactivate: ['/v2/coupons/:coupon_code', 'DELETE']
}
};

exports.couponRedemption = {
redeem: ['/v2/coupons/:coupon_code/redeem', 'POST'],
get: ['/v2/accounts/:account_code/redemption', 'GET'],
remove: ['/v2/accounts/:account_code/redemption', 'DELETE'],
getByInvoice: ['/v2/invoices/:invoice_number/redemption', 'GET']
}
};

exports.invoices = {
list: ['/v2/invoices', 'GET'],
Expand All @@ -40,23 +40,23 @@ exports.invoices = {
create: ['/v2/accounts/:account_code/invoices', 'POST'],
markSuccessful: ['/v2/invoices/:invoice_number/mark_successful', 'PUT'],
markFailed: ['/v2/invoices/:invoice_number/mark_failed', 'PUT']
}
};

exports.plans = {
list: ['/v2/plans', 'GET'],
get: ['/v2/plans/:plan_code', 'GET'],
create: ['/v2/plans', 'POST'],
update: ['/v2/plans/:plan_code', 'PUT'],
remove: ['/v2/plans/:plan_code', 'DELETE']
}
};

exports.planAddons = {
list: ['/v2/plans/:plan_code/add_ons', 'GET'],
get: ['/v2/plans/:plan_code/add_ons/:addon_code', 'GET'],
create: ['/v2/plans/:plan_code/add_ons', 'POST'],
update: ['/v2/plans/:plan_code/add_ons/:add_on_code', 'PUT'],
remove: ['/v2/plans/:plan_code/add_ons/:add_on_code', 'DELETE']
}
};

exports.subscriptions = {
list: ['/v2/subscriptions', 'GET'],
Expand All @@ -68,12 +68,12 @@ exports.subscriptions = {
reactivate: ['/v2/subscriptions/:uuid/reactivate', 'PUT'],
terminate: ['/v2/subscriptions/:uuid/terminate?refund=:refund_type', 'PUT'],
postpone: ['/v2/subscriptions/:uuid/postpone?next_renewal_date=:next_renewal_date', 'PUT']
}
};

exports.transactions = {
list: ['/v2/transactions', 'GET'],
listByAccount: ['/v2/accounts/:account_code/transactions', 'GET'],
get: ['/v2/transactions/:id', 'GET'],
create: ['/v2/transactions', 'POST'],
refund: ['/v2/transactions/:id', 'DELETE']
}
};
Loading