diff --git a/README.md b/README.md index 418b5082..80cf40f5 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Print a count of invoices: xeroClient.core.invoices.getInvoices() .then(function(invoices) { console.log("Invoices: " + invoices.length); -}).fail(function(err) { +}).catch(function(err) { console.error(err); }); ``` @@ -151,7 +151,7 @@ xeroClient.core.contacts.getContacts({ contacts.forEach(function(contact) { console.log(contact.Name); }); -}).fail(function(err) { +}).catch(function(err) { console.error(err); }); ``` @@ -160,7 +160,7 @@ Efficient paging: ```javascript xeroClient.core.contacts.getContacts({ pager: {start:1 /* page number */, callback: onContacts}}) - .fail(function(err) { + .catch(function(err) { console.log('Oh no, an error'); }); diff --git a/lib/application.js b/lib/application.js index 41b25f7d..8d157e24 100644 --- a/lib/application.js +++ b/lib/application.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('./logger'), OAuth = require('./oauth/oauth').OAuth, OAuthEcho = require('./oauth/oauth').OAuthEcho, - p = require('./misc/promise'), fs = require('fs'), extend = require('./misc/extend'), dateformat = require('dateformat'), @@ -98,215 +97,202 @@ _.extend(Application.prototype, { options = {}; } options = options || {}; - var deferred = p.defer(); - var params = {}; - if (options.summarizeErrors === false) - params.summarizeErrors = false; - - //Added to support more than 2dp being added. - if (options.unitdp) - params.unitdp = options.unitdp; - - var endPointUrl = options.api === 'payroll' ? this.options.payrollAPIEndPointUrl : this.options.coreAPIEndPointUrl; - var url = this.options.baseUrl + endPointUrl + path; - if (!_.isEmpty(params)) - url += '?' + querystring.stringify(params); - - this.oa[method](url, this.options.accessToken, this.options.accessSecret, { xml: body }, function(err, data, res) { - - if (err && data && data.indexOf('oauth_problem') >= 0) { - var errObj = new Error(method.toUpperCase() + ' call failed with: ' + err.statusCode); - errObj.data = qs.parse(data); - deferred.reject(errObj); - callback && callback(errObj); - return; - } + return new Promise(function(resolve, reject) { + var params = {}; + if (options.summarizeErrors === false) + params.summarizeErrors = false; - self.xml2js(data) - .then(function(obj) { - if (err) { - var exception = ""; - if (obj.ApiException) - exception = obj.ApiException; - else if (obj.Response.ErrorNumber) - exception = obj.Response; - var errObj = new Error(method.toUpperCase() + ' call failed with: ' + err.statusCode + ' and exception: ' + JSON.stringify(exception, null, 2)); - deferred.reject(errObj); - callback && callback(errObj); - } else { - var ret = { response: obj.Response, res: res }; - if (options.entityConstructor) { - ret.entities = self.convertEntities(obj.Response, options); + //Added to support more than 2dp being added. + if (options.unitdp) + params.unitdp = options.unitdp; + + var endPointUrl = options.api === 'payroll' ? self.options.payrollAPIEndPointUrl : self.options.coreAPIEndPointUrl; + var url = self.options.baseUrl + endPointUrl + path; + if (!_.isEmpty(params)) + url += '?' + querystring.stringify(params); + + self.oa[method](url, self.options.accessToken, self.options.accessSecret, { xml: body }, function(err, data, res) { + + if (err && data && data.indexOf('oauth_problem') >= 0) { + var errObj = new Error(method.toUpperCase() + ' call failed with: ' + err.statusCode); + errObj.data = qs.parse(data); + reject(errObj); + callback && callback(errObj); + return; + } + + self.xml2js(data) + .then(function(obj) { + if (err) { + var exception = ""; + if (obj.ApiException) + exception = obj.ApiException; + else if (obj.Response.ErrorNumber) + exception = obj.Response; + var errObj = new Error(method.toUpperCase() + ' call failed with: ' + err.statusCode + ' and exception: ' + JSON.stringify(exception, null, 2)); + reject(errObj); + callback && callback(errObj); + } else { + var ret = { response: obj.Response, res: res }; + if (options.entityConstructor) { + ret.entities = self.convertEntities(obj.Response, options); + } + resolve(ret); + callback && callback(null, obj, res, ret.entities); } - deferred.resolve(ret); - callback && callback(null, obj, res, ret.entities); - } - }) - .fail(function(err) { - logger.error(err); - throw err; - }) + }) + .catch(function(err) { + logger.error(err); + throw err; + }) + }); }); - return deferred.promise; }, delete: function(path, options, callback) { var self = this; options = options || {}; - var deferred, promise; - deferred = p.defer(); - promise = deferred.promise; - - deleteResource(); - - return promise; - - function deleteResource() { + return new Promise(function(resolve, reject) { var endPointUrl = options.api === 'payroll' ? self.options.payrollAPIEndPointUrl : self.options.coreAPIEndPointUrl; var url = self.options.baseUrl + endPointUrl + path; self.oa.delete(url, self.options.accessToken, self.options.accessSecret, function(err, data, res) { if (options.stream && !err) { // Already done - return deferred.resolve(); + return resolve(); } if (err && data && data.indexOf('oauth_problem') >= 0) { var errObj = new Error('DELETE call failed with: ' + err.statusCode); errObj.data = qs.parse(data); - deferred.reject(errObj); + reject(errObj); callback && callback(errObj); return; } if (err) { var errObj = new Error('DELETE call failed with: ' + err.statusCode + ' and message: ' + err.data); - deferred.reject(errObj); + reject(errObj); callback && callback(errObj); return; } //Some delete operations don't return any content (e.g. HTTP204) so simply resolve the promise if (!data || data === "") { - return deferred.resolve(); + return resolve(); } self.xml2js(data) .then(function(obj) { var ret = { response: obj.Response, res: res }; - deferred.resolve(ret); + resolve(ret); callback && callback(null, obj, res); }) - .fail(function(err) { + .catch(function(err) { logger.error(err); throw err; }) }, { stream: options.stream }); - - } + }); }, get: function(path, options, callback) { var self = this; options = options || {}; - var deferred, promise; - - // modifiedAfter - delete self.oa._headers['If-Modified-Since']; - if (options.modifiedAfter) - this.oa._headers['If-Modified-Since'] = dateformat(options.modifiedAfter, 'yyyy-mm-dd"T"hh:MM:ss'); - if (options.format) - this.oa._headers['Accept'] = 'application/' + options.format; - deferred = p.defer(); - promise = deferred.promise; + return new Promise(function(resolve, reject) { + // modifiedAfter + delete self.oa._headers['If-Modified-Since']; + if (options.modifiedAfter) + self.oa._headers['If-Modified-Since'] = dateformat(options.modifiedAfter, 'yyyy-mm-dd"T"hh:MM:ss'); + if (options.format) + self.oa._headers['Accept'] = 'application/' + options.format; - if (options.pager) - getResource(options.pager.start || 1) - else - getResource(); - - return promise; - - function getResource(offset) { - var endPointUrl = options.api === 'payroll' ? self.options.payrollAPIEndPointUrl : self.options.coreAPIEndPointUrl; - var url = self.options.baseUrl + endPointUrl + path; - var params = {}; - if (offset) { - params[options.pager.paramName || 'page'] = offset; - if (options.other) { - _.each(options.other, function(value, key) { - if (!_.isUndefined(value)) - params[key] = value; - }) + if (options.pager) + getResource(options.pager.start || 1) + else + getResource(); + + function getResource(offset) { + var endPointUrl = options.api === 'payroll' ? self.options.payrollAPIEndPointUrl : self.options.coreAPIEndPointUrl; + var url = self.options.baseUrl + endPointUrl + path; + var params = {}; + if (offset) { + params[options.pager.paramName || 'page'] = offset; + if (options.other) { + _.each(options.other, function(value, key) { + if (!_.isUndefined(value)) + params[key] = value; + }) + } } - } - /* - Added for where clause support on the GET requests. - */ - if (options.where) { - params['Where'] = options.where; - } - - if (!_.isEmpty(params)) { - url += '?' + querystring.stringify(params); - } - - self.oa.get(url, self.options.accessToken, self.options.accessSecret, function(err, data, res) { - if (options.stream && !err) { - // Already done - return deferred.resolve(); - } - if (err && data) { - var dataParts; - if (_.isObject(data)) - dataParts = qs.parse(data); - else - dataParts = data; - - var errObj = new Error('GET call failed with: ' + err.statusCode); - errObj.data = dataParts; - deferred.reject(errObj); - callback && callback(errObj); - return; + /* + Added for where clause support on the GET requests. + */ + if (options.where) { + params['Where'] = options.where; } - self.xml2js(data) - .then(function(obj) { - var ret = { response: obj.Response, res: res }; - if (err) { - var errObj = new Error('GET call failed with: ' + err.statusCode + ' and exception: ' + JSON.stringify(obj.ApiException, null, 2)); - deferred.reject(errObj); - callback && callback(errObj); - return; - } + if (!_.isEmpty(params)) { + url += '?' + querystring.stringify(params); + } - if (options.pager && options.pager.callback) { - options.pager.callback(err, ret, function(err, result) { - result = _.defaults({}, result, { recordCount: 0, stop: false }); - if (!result.stop) - getResource(result.nextOffset || ++offset); - else - done(); - }) - return; - } + self.oa.get(url, self.options.accessToken, self.options.accessSecret, function(err, data, res) { + if (options.stream && !err) { + // Already done + return resolve(); + } + if (err && data) { + var dataParts; + if (_.isObject(data)) + dataParts = qs.parse(data); + else + dataParts = data; + + var errObj = new Error('GET call failed with: ' + err.statusCode); + errObj.data = dataParts; + reject(errObj); + callback && callback(errObj); + return; + } - done(); + self.xml2js(data) + .then(function(obj) { + var ret = { response: obj.Response, res: res }; + if (err) { + var errObj = new Error('GET call failed with: ' + err.statusCode + ' and exception: ' + JSON.stringify(obj.ApiException, null, 2)); + reject(errObj); + callback && callback(errObj); + return; + } + + if (options.pager && options.pager.callback) { + options.pager.callback(err, ret, function(err, result) { + result = _.defaults({}, result, { recordCount: 0, stop: false }); + if (!result.stop) + getResource(result.nextOffset || ++offset); + else + done(); + }) + return; + } + + done(); + + function done() { + resolve(ret); + callback && callback(null, obj, res); + } + }) + .catch(function(err) { + logger.error(err); + throw err; + }) + }, { stream: options.stream }); - function done() { - deferred.resolve(ret); - callback && callback(null, obj, res); - } - }) - .fail(function(err) { - logger.error(err); - throw err; - }) - }, { stream: options.stream }); - - } + }; + }); }, asArray: function(obj) { if (_.isArray(obj)) @@ -367,7 +353,7 @@ _.extend(Application.prototype, { if (ret && ret.response) return ret.response; }) - .fail(function(err) { + .catch(function(err) { logger.error(err); throw err; }) @@ -377,8 +363,6 @@ _.extend(Application.prototype, { var self = this; var clonedOptions = _.clone(options || {}); - var deferred = p.defer(); - var callerPagerCallback; if (clonedOptions.pager) { callerPagerCallback = clonedOptions.pager.callback; @@ -390,7 +374,7 @@ _.extend(Application.prototype, { if (ret && ret.response) return self.convertEntities(ret.response, clonedOptions); }) - .fail(function(err) { + .catch(function(err) { logger.error(err); throw err; }) @@ -423,7 +407,12 @@ _.extend(Application.prototype, { }, xml2js: function(xml) { var parser = new xml2js.Parser({ explicitArray: false }); - return p.nbind(parser.parseString, parser)(xml); + return new Promise(function(resolve, reject) { + parser.parseString(xml, function(err, result) { + if (err) return reject(err); + resolve(result); + }); + }); }, js2xml: function(obj, rootName) { var builder = new xml2js.Builder({ rootName: rootName, headless: true }); @@ -507,27 +496,30 @@ var RequireAuthorizationApplication = Application.extend({ } extras = extras || {}; - var deferred = p.defer(); - this.oa.getOAuthRequestToken(extras, function(err, token, secret, results) { - if (err) - deferred.reject(err); - else - deferred.resolve({ token: token, secret: secret, results: results }); - callback && callback.apply(callback, arguments); + var self = this; + + return new Promise(function(resolve, reject) { + self.oa.getOAuthRequestToken(extras, function(err, token, secret, results) { + if (err) + reject(err); + else + resolve({ token: token, secret: secret, results: results }); + callback && callback.apply(callback, arguments); + }); }); - return deferred.promise; }, getAccessToken: function(token, secret, verifier, callback, options) { - var deferred = p.defer(); - this.oa.getOAuthAccessToken(token, secret, verifier, - function(err, token, secret, results) { + var self = this; + + return new Promise(function(resolve, reject) { + self.oa.getOAuthAccessToken(token, secret, verifier, function(err, token, secret, results) { if (err) - deferred.reject(err); + reject(err); else - deferred.resolve({ token: token, secret: secret, results: results }); + resolve({ token: token, secret: secret, results: results }); callback && callback.apply(callback, arguments); }) - return deferred.promise; + }); }, buildAuthorizeUrl: function(requestToken, other) { var q = _.extend({}, { oauth_token: requestToken }, other); @@ -607,4 +599,4 @@ var PartnerApplication = RequireAuthorizationApplication.extend({ module.exports.PrivateApplication = PrivateApplication; module.exports.PublicApplication = PublicApplication; module.exports.PartnerApplication = PartnerApplication; -module.exports.Application = Application; \ No newline at end of file +module.exports.Application = Application; diff --git a/lib/entities/attachment.js b/lib/entities/attachment.js index 3c219a92..e2300b5f 100644 --- a/lib/entities/attachment.js +++ b/lib/entities/attachment.js @@ -35,7 +35,7 @@ var Attachment = Entity.extend(AttachmentSchema, { console.log(ret); return ret.response.Attachments.Attachment; }) - .fail(function(err) { + .catch(function(err) { console.log(err); }) diff --git a/lib/entity_helpers/accounts.js b/lib/entity_helpers/accounts.js index 5db2620d..6a0404e2 100644 --- a/lib/entity_helpers/accounts.js +++ b/lib/entity_helpers/accounts.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Account = require('../entities/account'), - p = require('../misc/promise'), util = require('util') var Accounts = EntityHelper.extend({ @@ -35,4 +34,4 @@ var Accounts = EntityHelper.extend({ } }) -module.exports = Accounts; \ No newline at end of file +module.exports = Accounts; diff --git a/lib/entity_helpers/attachments.js b/lib/entity_helpers/attachments.js index 35cb6f4a..68a48a90 100644 --- a/lib/entity_helpers/attachments.js +++ b/lib/entity_helpers/attachments.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Attachment = require('../entities/attachment'), - p = require('../misc/promise'), util = require('util') var Attachments = EntityHelper.extend({ @@ -26,4 +25,4 @@ var Attachments = EntityHelper.extend({ } }) -module.exports = Attachments; \ No newline at end of file +module.exports = Attachments; diff --git a/lib/entity_helpers/banktransactions.js b/lib/entity_helpers/banktransactions.js index 9a6f10fe..00b821ad 100644 --- a/lib/entity_helpers/banktransactions.js +++ b/lib/entity_helpers/banktransactions.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), BankTransaction = require('../entities/banktransaction'), - p = require('../misc/promise'), util = require('util') var BankTransactions = EntityHelper.extend({ @@ -32,4 +31,4 @@ var BankTransactions = EntityHelper.extend({ } }) -module.exports = BankTransactions; \ No newline at end of file +module.exports = BankTransactions; diff --git a/lib/entity_helpers/banktransfers.js b/lib/entity_helpers/banktransfers.js index 07982198..a8d5f033 100644 --- a/lib/entity_helpers/banktransfers.js +++ b/lib/entity_helpers/banktransfers.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), BankTransfer = require('../entities/banktransfer'), - p = require('../misc/promise'), util = require('util') var BankTransfers = EntityHelper.extend({ @@ -32,4 +31,4 @@ var BankTransfers = EntityHelper.extend({ } }) -module.exports = BankTransfers; \ No newline at end of file +module.exports = BankTransfers; diff --git a/lib/entity_helpers/contacts.js b/lib/entity_helpers/contacts.js index cd15ead5..bb902ee2 100644 --- a/lib/entity_helpers/contacts.js +++ b/lib/entity_helpers/contacts.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Contact = require('../entities/contact'), - p = require('../misc/promise'), util = require('util') var Contacts = EntityHelper.extend({ @@ -33,4 +32,4 @@ var Contacts = EntityHelper.extend({ } }) -module.exports = Contacts; \ No newline at end of file +module.exports = Contacts; diff --git a/lib/entity_helpers/entity_helper.js b/lib/entity_helpers/entity_helper.js index 05a6c99f..f7e9ffcf 100644 --- a/lib/entity_helpers/entity_helper.js +++ b/lib/entity_helpers/entity_helper.js @@ -1,7 +1,6 @@ var logger = require('../logger'), extend = require('../misc/extend'), _ = require('lodash'), - promise = require('../misc/promise'), util = require('util'), qs = require('querystring') @@ -70,4 +69,4 @@ _.extend(EntityHelper.prototype, { } }) -module.exports = EntityHelper; \ No newline at end of file +module.exports = EntityHelper; diff --git a/lib/entity_helpers/invoices.js b/lib/entity_helpers/invoices.js index be4e3db0..4224bd16 100644 --- a/lib/entity_helpers/invoices.js +++ b/lib/entity_helpers/invoices.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Invoice = require('../entities/invoice'), - p = require('../misc/promise'), util = require('util') var Invoices = EntityHelper.extend({ @@ -39,4 +38,4 @@ var Invoices = EntityHelper.extend({ } }) -module.exports = Invoices; \ No newline at end of file +module.exports = Invoices; diff --git a/lib/entity_helpers/items.js b/lib/entity_helpers/items.js index ae166bf2..f14fc361 100644 --- a/lib/entity_helpers/items.js +++ b/lib/entity_helpers/items.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Item = require('../entities/item'), - p = require('../misc/promise'), util = require('util') var Items = EntityHelper.extend({ @@ -32,4 +31,4 @@ var Items = EntityHelper.extend({ } }) -module.exports = Items; \ No newline at end of file +module.exports = Items; diff --git a/lib/entity_helpers/journals.js b/lib/entity_helpers/journals.js index 0c5294e6..0ba7c671 100644 --- a/lib/entity_helpers/journals.js +++ b/lib/entity_helpers/journals.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Journal = require('../entities/journal'), - p = require('../misc/promise'), util = require('util') var Journals = EntityHelper.extend({ @@ -53,11 +52,11 @@ var Journals = EntityHelper.extend({ callback && callback(null, journals); return journals; }) - .fail(function(err) { + .catch(function(err) { callback && callback(err); throw err; }) } }) -module.exports = Journals; \ No newline at end of file +module.exports = Journals; diff --git a/lib/entity_helpers/organisations.js b/lib/entity_helpers/organisations.js index ca8de004..536027ce 100644 --- a/lib/entity_helpers/organisations.js +++ b/lib/entity_helpers/organisations.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Organisation = require('../entities/organisation'), - p = require('../misc/promise'), util = require('util') var Organisations = EntityHelper.extend({ @@ -21,11 +20,11 @@ var Organisations = EntityHelper.extend({ callback && callback(null, _.first(organisations)); return _.first(organisations); }) - .fail(function(err) { + .catch(function(err) { callback && callback(err); throw err; }) } }) -module.exports = Organisations; \ No newline at end of file +module.exports = Organisations; diff --git a/lib/entity_helpers/payitems.js b/lib/entity_helpers/payitems.js index 7d4e876a..aa136b30 100644 --- a/lib/entity_helpers/payitems.js +++ b/lib/entity_helpers/payitems.js @@ -7,7 +7,6 @@ var _ = require('lodash') , DeductionType = require('../entities/payitems').DeductionType , ReimbursementType = require('../entities/payitems').ReimbursementType , TimeOffType = require('../entities/payitems').TimeOffType - , p = require('../misc/promise') , util = require('util') var PayItems = EntityHelper.extend({ diff --git a/lib/entity_helpers/payments.js b/lib/entity_helpers/payments.js index b4a4c499..73ae93f1 100644 --- a/lib/entity_helpers/payments.js +++ b/lib/entity_helpers/payments.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Payment = require('../entities/payment'), - p = require('../misc/promise'), util = require('util') var Payments = EntityHelper.extend({ @@ -26,4 +25,4 @@ var Payments = EntityHelper.extend({ } }) -module.exports = Payments; \ No newline at end of file +module.exports = Payments; diff --git a/lib/entity_helpers/payroll_employees.js b/lib/entity_helpers/payroll_employees.js index a2c308f1..4660d6e8 100644 --- a/lib/entity_helpers/payroll_employees.js +++ b/lib/entity_helpers/payroll_employees.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), Employee = require('../entities/payroll_employee'), - p = require('../misc/promise'), util = require('util') var Employees = EntityHelper.extend({ @@ -30,4 +29,4 @@ var Employees = EntityHelper.extend({ } }) -module.exports = Employees; \ No newline at end of file +module.exports = Employees; diff --git a/lib/entity_helpers/taxrates.js b/lib/entity_helpers/taxrates.js index 530562e0..84b3edd6 100644 --- a/lib/entity_helpers/taxrates.js +++ b/lib/entity_helpers/taxrates.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), TaxRate = require('../entities/taxrate'), - p = require('../misc/promise'), util = require('util') var TaxRates = EntityHelper.extend({ @@ -24,4 +23,4 @@ var TaxRates = EntityHelper.extend({ } }) -module.exports = TaxRates; \ No newline at end of file +module.exports = TaxRates; diff --git a/lib/entity_helpers/timesheets.js b/lib/entity_helpers/timesheets.js index b9b44c73..27caa26b 100644 --- a/lib/entity_helpers/timesheets.js +++ b/lib/entity_helpers/timesheets.js @@ -2,7 +2,6 @@ var _ = require('lodash') , logger = require('../logger') , EntityHelper = require('./entity_helper') , Timesheet = require('../entities/timesheet') - , p = require('../misc/promise') , util = require('util') var Timesheets = EntityHelper.extend({ diff --git a/lib/entity_helpers/trackingcategories.js b/lib/entity_helpers/trackingcategories.js index 2deee408..c659e8c9 100644 --- a/lib/entity_helpers/trackingcategories.js +++ b/lib/entity_helpers/trackingcategories.js @@ -3,7 +3,6 @@ var _ = require('lodash'), EntityHelper = require('./entity_helper'), TrackingCategory = require('../entities/trackingcategory'), TrackingOption = require('../entities/trackingoption.js'), - p = require('../misc/promise'), util = require('util') var TrackingCategories = EntityHelper.extend({ @@ -37,4 +36,4 @@ var TrackingCategories = EntityHelper.extend({ } }) -module.exports = TrackingCategories; \ No newline at end of file +module.exports = TrackingCategories; diff --git a/lib/entity_helpers/users.js b/lib/entity_helpers/users.js index c9a87e9d..6b2d3caa 100644 --- a/lib/entity_helpers/users.js +++ b/lib/entity_helpers/users.js @@ -2,7 +2,6 @@ var _ = require('lodash'), logger = require('../logger'), EntityHelper = require('./entity_helper'), User = require('../entities/user'), - p = require('../misc/promise'), util = require('util') var Users = EntityHelper.extend({ @@ -31,4 +30,4 @@ var Users = EntityHelper.extend({ } }) -module.exports = Users; \ No newline at end of file +module.exports = Users; diff --git a/lib/misc/promise.js b/lib/misc/promise.js deleted file mode 100644 index 94ab9b11..00000000 --- a/lib/misc/promise.js +++ /dev/null @@ -1,3 +0,0 @@ -var q = require('q'); - -module.exports = q; \ No newline at end of file diff --git a/sample_app/sample_app.js b/sample_app/sample_app.js index e0f1e069..b8d9d94b 100644 --- a/sample_app/sample_app.js +++ b/sample_app/sample_app.js @@ -155,7 +155,7 @@ app.get('/employees', function(req, res) { } }); }) - .fail(function(err) { + .catch(function(err) { console.log(err) res.render('employees', { error: err, @@ -306,7 +306,7 @@ app.get('/timesheets', function(req, res) { } }); }) - .fail(function(err) { + .catch(function(err) { console.log(err) res.render('timesheets', { error: err, @@ -337,7 +337,7 @@ app.use('/createtimesheet', function(req, res) { .then(function(ret) { res.render('createtimesheet', { timesheets: ret.entities }) }) - .fail(function(err) { + .catch(function(err) { res.render('createtimesheet', { err: err }) }) @@ -400,7 +400,7 @@ app.use('/createinvoice', function(req, res) { .then(function(ret) { res.render('createinvoice', { outcome: 'Invoice created', id: ret.entities[0].InvoiceID }) }) - .fail(function(err) { + .catch(function(err) { res.render('createinvoice', { outcome: 'Error', err: err }) }) diff --git a/sample_app/views/index.handlebars b/sample_app/views/index.handlebars index 4c77d9e4..22ed8391 100644 --- a/sample_app/views/index.handlebars +++ b/sample_app/views/index.handlebars @@ -113,7 +113,7 @@ privateApp.core.invoices.getInvoices() .then(function(invoices) { console.log("Invoices: " + invoices.length); -}).fail(function(err) { +}).catch(function(err) { console.error(err); }); @@ -126,13 +126,13 @@ privateApp.core.contacts.getContacts({ contacts.forEach(function(contact) { console.log(contact.Name); }); -}).fail(function(err) { +}).catch(function(err) { console.error(err); });

Efficient paging:

privateApp.core.contacts.getContacts({ pager: {start:1 /* page number */, callback:onContacts}})
-    .fail(function(err) {
+    .catch(function(err) {
         console.log('Oh no, an error');
     });
 
diff --git a/test/accountingtests.js b/test/accountingtests.js
index 0e326895..dfb69607 100644
--- a/test/accountingtests.js
+++ b/test/accountingtests.js
@@ -76,7 +76,7 @@ describe('get access for public or partner application', function() {
                 })
                 .then(function() {
                     done();
-                }).fail(function(err) {
+                }).catch(function(err) {
                     done(wrapError(err));
                 });
         });
@@ -188,7 +188,7 @@ describe('get access for public or partner application', function() {
                     })
                     .then(function() {
                         done();
-                    }).fail(function(err) {
+                    }).catch(function(err) {
                         done(wrapError(err));
                     });
             });
@@ -268,7 +268,7 @@ describe('regression tests', function() {
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     done(wrapError(err));
                 })
         })
@@ -304,7 +304,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(err);
                     done(wrapError(err));
                 })
@@ -396,7 +396,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -437,7 +437,7 @@ describe('regression tests', function() {
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -461,7 +461,7 @@ describe('regression tests', function() {
                     expect(account.AccountID).to.not.equal("");
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -471,7 +471,7 @@ describe('regression tests', function() {
         it('UPDATE ONE', function(done) {
             currentApp.core.accounts.getAccount(testAccountId)
                 .then(function(account) {
-                    testAccountData.Name = "Updated from the SDK";
+                    testAccountData.Name = "Updated from the SDK " + uuid.v4();
                     account.Name = testAccountData.Name;
 
                     account.save()
@@ -480,12 +480,12 @@ describe('regression tests', function() {
                             expect(thisAccount.Name).to.equal(testAccountData.Name);
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(util.inspect(err, null, null));
                             done(wrapError(err));
                         });
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -497,7 +497,7 @@ describe('regression tests', function() {
                     expect(response.Status).to.equal("OK");
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -537,7 +537,7 @@ describe('regression tests', function() {
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -555,7 +555,7 @@ describe('regression tests', function() {
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     done(wrapError(err));
                 })
         })
@@ -566,7 +566,7 @@ describe('regression tests', function() {
                     expect(invoice.InvoiceID).to.not.equal(undefined);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     done(wrapError(err));
                 })
         })
@@ -590,11 +590,11 @@ describe('regression tests', function() {
                             });
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             done(wrapError(err));
                         })
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     done(wrapError(err));
                 })
         })
@@ -656,7 +656,7 @@ describe('regression tests', function() {
                     expect(PaymentID).to.not.equal(undefined);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -673,7 +673,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -686,7 +686,7 @@ describe('regression tests', function() {
                     expect(payment.PaymentID).to.not.equal("");
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -705,7 +705,7 @@ describe('regression tests', function() {
                     expect(response.entities[0].Status).to.equal("DELETED");
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -747,7 +747,7 @@ describe('regression tests', function() {
                     sharedTransaction = response.entities[0].BankTransactionID;
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -763,7 +763,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -776,7 +776,7 @@ describe('regression tests', function() {
                     expect(bankTransaction.BankTransactionID).to.not.equal(undefined);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -805,7 +805,7 @@ describe('regression tests', function() {
                     sampleTransferID = response.entities[0].BankTransferID;
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -820,7 +820,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -834,7 +834,7 @@ describe('regression tests', function() {
                     expect(bankTransfer.BankTransferID).to.equal(sampleTransferID);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -860,7 +860,7 @@ describe('regression tests', function() {
                     sampleTrackingCategory = response.entities[0];
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -885,7 +885,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -909,12 +909,12 @@ describe('regression tests', function() {
                             expect(response.entities[0].Name).to.equal("left");
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(util.inspect(err, null, null));
                             done(wrapError(err));
                         })
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -926,7 +926,7 @@ describe('regression tests', function() {
                     //console.log(response);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -993,7 +993,7 @@ describe('regression tests', function() {
                         });
                         return currentApp.core.trackingCategories.deleteTrackingCategory(trackingCategoryID)
                     })
-                    .fail(function(err) {
+                    .catch(function(err) {
                         console.log(util.inspect(err, null, null));
                         done(wrapError(err));
                     })
@@ -1013,7 +1013,7 @@ describe('regression tests', function() {
                     expect(response.entities[0].Status).to.equal(sampleTrackingCategory.Status);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1047,7 +1047,7 @@ describe('regression tests', function() {
                     sampleItem.ItemID = response.entities[0].ItemID;
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1062,7 +1062,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1074,7 +1074,7 @@ describe('regression tests', function() {
                     expect(item.ItemID).to.equal(sampleItem.ItemID);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1095,12 +1095,12 @@ describe('regression tests', function() {
                             expect(response.entities[0].Name).to.equal(randomName);
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(util.inspect(err, null, null));
                             done(wrapError(err));
                         })
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1111,7 +1111,7 @@ describe('regression tests', function() {
                 .then(function() {
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1140,7 +1140,7 @@ describe('regression tests', function() {
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(err)
                     done(wrapError(err));
                 })
@@ -1155,14 +1155,14 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
         })
         it('get (paging)', function(done) {
             currentApp.core.contacts.getContacts({ pager: { start: 1, callback: onContacts } })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1192,7 +1192,7 @@ describe('regression tests', function() {
                     expect(contact.ContactID).to.equal(sampleContact.ContactID);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1208,7 +1208,7 @@ describe('regression tests', function() {
                     done();
 
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1228,7 +1228,7 @@ describe('regression tests', function() {
                     });
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1266,12 +1266,12 @@ describe('regression tests', function() {
                             expect(updatedContact.response.Contacts.Contact.Name).to.equal(newName);
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(util.inspect(err, null, null));
                             done(wrapError(err));
                         })
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1285,12 +1285,12 @@ describe('regression tests', function() {
                             console.log(attachments);
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(util.inspect(err, null, null));
                             done(wrapError(err));
                         })
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 });
@@ -1302,7 +1302,7 @@ describe('regression tests', function() {
 
         it('get (paging with callback)', function(done) {
             currentApp.core.journals.getJournals({ pager: { start: 1, callback: onJournals } })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1337,7 +1337,7 @@ describe('regression tests', function() {
                     expect(journals).to.not.equal(undefined);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1353,7 +1353,7 @@ describe('regression tests', function() {
                     sampleJournalId = _.first(journals).JournalID;
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1366,7 +1366,7 @@ describe('regression tests', function() {
                     expect(journal.JournalID).to.equal(sampleJournalId);
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(util.inspect(err, null, null));
                     done(wrapError(err));
                 })
@@ -1380,7 +1380,7 @@ describe('regression tests', function() {
                 .then(function(users) {
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(err)
                     done(wrapError(err));
                 });
@@ -1425,14 +1425,14 @@ describe('regression tests', function() {
                             console.log(response);
                             done();
                         })
-                        .fail(function(err) {
+                        .catch(function(err) {
                             console.log(err)
                             done(wrapError(err));
                         })
 
                     done();
                 })
-                .fail(function(err) {
+                .catch(function(err) {
                     console.log(err)
                     done(wrapError(err));
                 })
diff --git a/test/payrolltests.js b/test/payrolltests.js
index a8f15937..15833471 100644
--- a/test/payrolltests.js
+++ b/test/payrolltests.js
@@ -5,7 +5,7 @@ describe.skip('payitems', function() {
                 console.log(payitems[0].EarningsTypes);
                 done();
             })
-            .fail(function(err) {
+            .catch(function(err) {
                 done(wrapError(err));
             })
     })
@@ -26,7 +26,7 @@ describe.skip('timesheets', function() {
             .then(function() {
                 done();
             })
-            .fail(function(err) {
+            .catch(function(err) {
                 done(wrapError(err));
             })
 
@@ -38,7 +38,7 @@ describe.skip('timesheets', function() {
                     console.log(util.inspect(timesheets[0].toObject(), null, null));
                 done();
             })
-            .fail(function(err) {
+            .catch(function(err) {
                 done(wrapError(err));
             })
     })
@@ -52,7 +52,7 @@ describe.skip('employees', function() {
                 console.log(ret[0].toObject());
                 done();
             })
-            .fail(function(err) {
+            .catch(function(err) {
                 done(wrapError(err));
             })
     })
@@ -63,7 +63,7 @@ describe.skip('employees', function() {
                 console.log(employee.toObject());
                 done();
             })
-            .fail(function(err) {
+            .catch(function(err) {
                 done(wrapError(err));
             })
     })