Changed rest params in subs

This commit is contained in:
vjrj 2018-06-18 11:58:04 +02:00
parent b8ab47e867
commit 5b3d86e6a5
2 changed files with 20 additions and 29 deletions

View file

@ -22,6 +22,11 @@ const uptime = new Date();
const restivusError = (code, message) => ({ status: 'error', statusCode: code, body: message }); 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) { function fail(e) {
return restivusError(500, `Unexpected error in REST call: ${e}`); return restivusError(500, `Unexpected error in REST call: ${e}`);
} }
@ -289,7 +294,7 @@ if (!Meteor.settings.private.internalApiToken) {
if (failed) return failed; if (failed) return failed;
const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); const user = Meteor.users.findOne({ fireBaseToken: mobileToken });
if (!user) return failed; if (!user) return failMsg('User not found');
const newSubs = {}; const newSubs = {};
newSubs.location = {}; newSubs.location = {};
@ -323,7 +328,7 @@ if (!Meteor.settings.private.internalApiToken) {
if (failed) return failed; if (failed) return failed;
const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); const user = Meteor.users.findOne({ fireBaseToken: mobileToken });
if (!user) return failed; if (!user) return failMsg('User not found');
try { try {
Subscriptions.remove({ owner: user._id, _id: new Meteor.Collection.ObjectID(subsId) }); 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() { get: function get() {
const { token, mobileToken } = this.bodyParams; const { token, mobileToken } = this.urlParams;
try { try {
check(token, String); check(token, String);
check(mobileToken, String); check(mobileToken, String);
@ -349,14 +354,14 @@ if (!Meteor.settings.private.internalApiToken) {
if (failed) return failed; if (failed) return failed;
const user = Meteor.users.findOne({ fireBaseToken: mobileToken }); 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 }); const result = Subscriptions.find({ owner: user._id });
return jsend.success({ subscriptions: result.fetch(), count: result.count() }); return jsend.success({ subscriptions: result.fetch(), count: result.count() });
}, },
delete: function delAll() { delete: function delAll() {
const { token, mobileToken } = this.bodyParams; const { token, mobileToken } = this.urlParams;
try { try {
check(token, String); check(token, String);
check(mobileToken, String); check(mobileToken, String);
@ -365,12 +370,13 @@ if (!Meteor.settings.private.internalApiToken) {
} }
const failed = checkAuthToken(token); 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 }); 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(); const toRemove = Subscriptions.find({ owner: user._id }).count();
Subscriptions.remove({ owner: user._id }); Subscriptions.remove({ owner: user._id });

View file

@ -186,11 +186,7 @@ describe('basic api v1 returns', () => {
}); });
it('should get all mobile user subscriptions', async (done) => { it('should get all mobile user subscriptions', async (done) => {
HTTP.get(url('api/v1/mobile/subscriptions/all'), { HTTP.get(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), {
data: {
token,
mobileToken
}
}, (error, result) => { }, (error, result) => {
chai.expect(error, null); chai.expect(error, null);
chai.expect(result.statusCode).equal(200); 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) => { it('should not get mobile user subscriptions with wrong token', async (done) => {
HTTP.get(url('api/v1/mobile/subscriptions/all'), { HTTP.get(url(`api/v1/mobile/subscriptions/all/wrongOne/${mobileToken}`), {
data: {
token: 'wrongOne',
mobileToken
}
}, (error, result) => { }, (error, result) => {
chai.expect(error, null); chai.expect(error, null);
chai.expect(result.statusCode).equal(401); chai.expect(result.statusCode).equal(401);
@ -252,13 +244,10 @@ describe('basic api v1 returns', () => {
}); });
it('should get all mobile user subscriptions', async (done) => { it('should get all mobile user subscriptions', async (done) => {
HTTP.get(url('api/v1/mobile/subscriptions/all'), { HTTP.get(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), {
data: {
token,
mobileToken
}
}, (error, result) => { }, (error, result) => {
chai.expect(error, null); chai.expect(error, null);
console.log(result);
chai.expect(result.statusCode).equal(200); chai.expect(result.statusCode).equal(200);
const jsendResult = result.data; const jsendResult = result.data;
chai.expect(jsendResult.status).equal('success'); chai.expect(jsendResult.status).equal('success');
@ -272,11 +261,7 @@ describe('basic api v1 returns', () => {
it('should del all mobile user subscriptions', async (done) => { it('should del all mobile user subscriptions', async (done) => {
// Add subs // Add subs
addSubs(() => { addSubs(() => {
HTTP.del(url('api/v1/mobile/subscriptions/all'), { HTTP.del(url(`api/v1/mobile/subscriptions/all/${token}/${mobileToken}`), {
data: {
token,
mobileToken
}
}, (error, result) => { }, (error, result) => {
chai.expect(error, null); chai.expect(error, null);
chai.expect(result.statusCode).equal(200); chai.expect(result.statusCode).equal(200);