From 5b3d86e6a5feaeb8c13fc4d44d22f28e5b39a3d6 Mon Sep 17 00:00:00 2001 From: vjrj Date: Mon, 18 Jun 2018 11:58:04 +0200 Subject: [PATCH] Changed rest params in subs --- imports/api/Rest/Rest.js | 24 +++++++++++++++--------- test/rest.test.js | 25 +++++-------------------- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/imports/api/Rest/Rest.js b/imports/api/Rest/Rest.js index e7d8b9b..cd3df27 100644 --- a/imports/api/Rest/Rest.js +++ b/imports/api/Rest/Rest.js @@ -22,6 +22,11 @@ const uptime = new Date(); const restivusError = (code, message) => ({ status: 'error', statusCode: code, body: message }); + +function failMsg(msg) { + return restivusError(500, `Unexpected error in REST call: ${msg}`); +} + function fail(e) { return restivusError(500, `Unexpected error in REST call: ${e}`); } @@ -289,7 +294,7 @@ if (!Meteor.settings.private.internalApiToken) { if (failed) return failed; const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); - if (!user) return failed; + if (!user) return failMsg('User not found'); const newSubs = {}; newSubs.location = {}; @@ -323,7 +328,7 @@ if (!Meteor.settings.private.internalApiToken) { if (failed) return failed; const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); - if (!user) return failed; + if (!user) return failMsg('User not found'); try { Subscriptions.remove({ owner: user._id, _id: new Meteor.Collection.ObjectID(subsId) }); @@ -335,9 +340,9 @@ if (!Meteor.settings.private.internalApiToken) { } }); - apiV1.addRoute('mobile/subscriptions/all', { authRequired: false }, { + apiV1.addRoute('mobile/subscriptions/all/:token/:mobileToken', { authRequired: false }, { get: function get() { - const { token, mobileToken } = this.bodyParams; + const { token, mobileToken } = this.urlParams; try { check(token, String); check(mobileToken, String); @@ -349,14 +354,14 @@ if (!Meteor.settings.private.internalApiToken) { if (failed) return failed; const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); - if (!user) return failed; + if (!user) return failMsg('User not found'); const result = Subscriptions.find({ owner: user._id }); return jsend.success({ subscriptions: result.fetch(), count: result.count() }); }, delete: function delAll() { - const { token, mobileToken } = this.bodyParams; + const { token, mobileToken } = this.urlParams; try { check(token, String); check(mobileToken, String); @@ -365,12 +370,13 @@ if (!Meteor.settings.private.internalApiToken) { } const failed = checkAuthToken(token); - if (failed) return failed; + if (failed) return failed('Auth api check failed'); - if (Meteor.users.find({ fireBaseToken: mobileToken }).count() !== 1) return failed; + if (Meteor.users.find({ fireBaseToken: mobileToken }).count() !== 1) return fail; const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); - if (!user) return failed; + if (!user) return failMsg('User not found'); + const toRemove = Subscriptions.find({ owner: user._id }).count(); Subscriptions.remove({ owner: user._id }); diff --git a/test/rest.test.js b/test/rest.test.js index 01d3194..281d93e 100644 --- a/test/rest.test.js +++ b/test/rest.test.js @@ -186,11 +186,7 @@ describe('basic api v1 returns', () => { }); it('should get all mobile user subscriptions', async (done) => { - HTTP.get(url('api/v1/mobile/subscriptions/all'), { - data: { - token, - mobileToken - } + HTTP.get(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), { }, (error, result) => { chai.expect(error, null); chai.expect(result.statusCode).equal(200); @@ -239,11 +235,7 @@ describe('basic api v1 returns', () => { }); it('should not get mobile user subscriptions with wrong token', async (done) => { - HTTP.get(url('api/v1/mobile/subscriptions/all'), { - data: { - token: 'wrongOne', - mobileToken - } + HTTP.get(url(`api/v1/mobile/subscriptions/all/wrongOne/${mobileToken}`), { }, (error, result) => { chai.expect(error, null); chai.expect(result.statusCode).equal(401); @@ -252,13 +244,10 @@ describe('basic api v1 returns', () => { }); it('should get all mobile user subscriptions', async (done) => { - HTTP.get(url('api/v1/mobile/subscriptions/all'), { - data: { - token, - mobileToken - } + HTTP.get(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), { }, (error, result) => { chai.expect(error, null); + console.log(result); chai.expect(result.statusCode).equal(200); const jsendResult = result.data; chai.expect(jsendResult.status).equal('success'); @@ -272,11 +261,7 @@ describe('basic api v1 returns', () => { it('should del all mobile user subscriptions', async (done) => { // Add subs addSubs(() => { - HTTP.del(url('api/v1/mobile/subscriptions/all'), { - data: { - token, - mobileToken - } + HTTP.del(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), { }, (error, result) => { chai.expect(error, null); chai.expect(result.statusCode).equal(200);