From bee50019c605670e29d736f6754dcddeea915c78 Mon Sep 17 00:00:00 2001 From: Yunchi Luo Date: Mon, 6 Nov 2017 10:35:19 -0500 Subject: [PATCH 1/3] Add GET /v1/order/btn-ref/{btnRef} --- lib/resources/orders.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/resources/orders.js b/lib/resources/orders.js index f7ff730..fba9578 100644 --- a/lib/resources/orders.js +++ b/lib/resources/orders.js @@ -20,6 +20,21 @@ function orders(requestOptions, maybePromiseRequest) { return maybePromiseRequest(options, callback); }, + getByBtnRef: function get(btnRef, callback) { + // + // Lists orders by btn_ref. + // + // @param {string} btnRef the button attribution token + // @callback invoked iff config.promise isn't valid + // @returns {Object=} a promise or undefined, depending on + // `config.promise` + var options = merge(requestOptions, { + method: 'GET', + path: '/v1/order/btn-ref/' + btnRef + }); + + return maybePromiseRequest(options, callback); + }, create: function create(order, callback) { // // Creates an order. From 660ace78e3f0c3e8d84b9de858406d340a6045a9 Mon Sep 17 00:00:00 2001 From: Yunchi Luo Date: Mon, 6 Nov 2017 10:39:11 -0500 Subject: [PATCH 2/3] bump version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0db53cb..665160e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ Current Version - +2.7.0 November 6, 2017 + - Add get orders by button ref + 2.6.0 July 19, 2017 - Add `customers` resource diff --git a/package.json b/package.json index 58717e6..92672a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@button/button-client-node", - "version": "2.6.0", + "version": "2.7.0", "description": "node.js client for the Button Order API", "repository": { "type": "git", From 166c5538fcdef6628ad0344feabc861ec9a829f2 Mon Sep 17 00:00:00 2001 From: Yunchi Luo Date: Mon, 6 Nov 2017 13:14:08 -0500 Subject: [PATCH 3/3] Upgrade README and tests --- README.md | 10 ++++++++++ test/lib/resources/orders-test.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/README.md b/README.md index 3cfae4c..bda3b4c 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,16 @@ client.orders.get('btnorder-XXX', function(err, res) { }); ``` +##### Get by Button Ref + +```javascript +var client = require('@button/button-client-node')('sk-XXX'); + +client.orders.getByBtnRef('srctok-XXX', function (err, res) { + // ... +}); +``` + ##### Update ```javascript diff --git a/test/lib/resources/orders-test.js b/test/lib/resources/orders-test.js index 270ead4..6035281 100644 --- a/test/lib/resources/orders-test.js +++ b/test/lib/resources/orders-test.js @@ -52,6 +52,35 @@ describe('lib/resources/orders', function() { }); + describe('#getByBtnRef', function() { + + beforeEach(function() { + this.btnRef = 'srctok-XXX'; + this.order = { 'button_order_id': 'srctok-XXX' }; + this.scope = nock('https://api.usebutton.com:443') + .get('/v1/order/btn-ref/' + this.btnRef) + .reply(200, { meta: { status: 'ok' }, 'objects': [this.order] }); + }); + + it('gets an order with a callback', function(done) { + this.callbackClient.getByBtnRef(this.btnRef, function(err, res) { + expect(err).to.be(null); + expect(res.data[0]).to.eql(this.order); + this.scope.done(); + done(); + }.bind(this)); + }); + + it('gets an order with a promise', function(done) { + this.promiseClient.getByBtnRef(this.btnRef).then(function(result) { + expect(result.data[0]).to.eql(this.order); + this.scope.done(); + done(); + }.bind(this)).catch(done); + }); + + }); + describe('#create', function() { beforeEach(function() {