From 8deaafb96b5d7201141f525d5f1bf95e1479f10a Mon Sep 17 00:00:00 2001 From: vjrj Date: Fri, 2 Mar 2018 10:08:52 +0100 Subject: [PATCH] Better error return in subscriptions --- imports/api/Subscriptions/methods.js | 24 +++++++++---------- .../SubscriptionEditor/SubscriptionEditor.js | 6 +++-- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/imports/api/Subscriptions/methods.js b/imports/api/Subscriptions/methods.js index d3608f0..618ed21 100644 --- a/imports/api/Subscriptions/methods.js +++ b/imports/api/Subscriptions/methods.js @@ -17,21 +17,21 @@ Meteor.methods({ distance: Number }); const type = 'web'; + const newDoc = { + owner: this.userId, + type, + geo: geo(doc), + ...doc + }; + // console.log(newDoc); + const already = Subscriptions.findOne(newDoc); + if (already) { + throw new Meteor.Error('on-already-subscribed', 'The user is already subscribed to this area'); + } try { - const newDoc = { - owner: this.userId, - type, - geo: geo(doc), - ...doc - }; - // console.log(newDoc); - const already = Subscriptions.findOne(newDoc); - if (already) { - throw new Meteor.Error('500', 'on-already-subscribed'); - } return Subscriptions.insert(newDoc); } catch (exception) { - console.error(exception); + // console.error(exception); throw new Meteor.Error('500', exception); } }, diff --git a/imports/ui/components/SubscriptionEditor/SubscriptionEditor.js b/imports/ui/components/SubscriptionEditor/SubscriptionEditor.js index 4a4d4fd..7e48939 100644 --- a/imports/ui/components/SubscriptionEditor/SubscriptionEditor.js +++ b/imports/ui/components/SubscriptionEditor/SubscriptionEditor.js @@ -40,8 +40,10 @@ class SubscriptionEditor extends React.Component { Meteor.call(methodToCall, doc, (error, subscriptionId) => { if (error) { self.setState({ disableFstBtn: false }); - if (error.reason && error.reason.reason) { - Bert.alert(t(error.reason.reason), 'danger'); + if (error.error && error.error === 'on-already-subscribed') { + Bert.alert(t(error.error), 'danger'); + } else if (error.reason) { + Bert.alert(error.reason, 'danger'); } } else { self.setState({ disableFstBtn: false });