From 550b0ac8d39dc62eb4ec1550bc431faf97cb432f Mon Sep 17 00:00:00 2001 From: mrz1836 Date: Mon, 30 Dec 2019 18:08:53 -0500 Subject: [PATCH] Minor error / web block improvements --- lib/api.js | 217 +++++++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 72 insertions(+), 147 deletions(-) diff --git a/lib/api.js b/lib/api.js index 0cffa10..509fb7a 100644 --- a/lib/api.js +++ b/lib/api.js @@ -22,9 +22,14 @@ function getOptions(useCustomSessionToken) { // blockBrowser will block request from firing if loaded in web browser function blockBrowser(){ - if (typeof window !== 'undefined') { + if (typeof window !== 'undefined') throw Error('cannot do this request in a web browser') - } +} + +// initCheck is an error check if we've loaded +function initCheck(loaded){ + if (!loaded) + throw Error('init() should be run first') } // extractSessionTokenFromHeader will extract a session token from a cookie header value @@ -212,6 +217,15 @@ function wrapAxios(t) { t.loaded = true } +// checkError will check the response error from the api method +// Use the data response if found, otherwise fallback to error message +function checkError(e) { + if (typeof e.response !== 'undefined') { + return e.response.data + } + return e.message +} + // // TonicPow API - User Requests // ===================================================================================================================== @@ -501,396 +515,307 @@ module.exports = { } resolve({success: this.config.environment+' api loaded'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, - initRequired: function (){ - if (!this.loaded) { - throw Error('init() should be run first') - } - }, prolongSession: async function(customSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await prolongSession(this, extractSessionTokenFromHeader(customSessionToken)) resolve({success: 'session prolonged'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, endSession: async function(customSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) this.session.apiToken = customSessionToken await endSession(this, this.session.apiToken) resolve({success: 'session ended'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, loginUser: async function(email, password){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await loginUser(this, email, password) resolve({success: 'user logged in'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, logoutUser: async function(userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) this.session.userToken = userSessionToken await logoutUser(this, this.session.userToken) resolve({success: 'user logged out'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, currentUser: async function(userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) this.session.userToken = userSessionToken let response = await currentUser(this, this.session.userToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getUser: async function(userId, email){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getUser(this, userId, email) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getUserBalance: async function(userId){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getUserBalance(this, userId) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, createUser: async function(user){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await createUser(this, user) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, updateUser: async function(user, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await updateUser(this, user, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, forgotPassword: async function(email){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await forgotPassword(this, email) resolve({success: 'forgot password email sent'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, resetPassword: async function(resetToken, password, passwordConfirm){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await resetPassword(this, resetToken, password, passwordConfirm) resolve({success: 'password set'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, completeEmailVerification: async function(emailToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await completeEmailVerification(this, emailToken) resolve({success: 'email verified'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, completePhoneVerification: async function(phone, phoneCode){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) await completePhoneVerification(this, phone, phoneCode) resolve({success: 'phone verified'}) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, createAdvertiserProfile: async function(profile, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await createAdvertiserProfile(this, profile, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getAdvertiserProfile: async function(profileId, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getAdvertiserProfile(this, profileId, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, updateAdvertiserProfile: async function(profile, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await updateAdvertiserProfile(this, profile, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, createCampaign: async function(campaign, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await createCampaign(this, campaign, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getCampaign: async function(campaignId, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getCampaign(this, campaignId, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getCampaignBalance: async function(campaignId){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getCampaignBalance(this, campaignId) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, updateCampaign: async function(campaign, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await updateCampaign(this, campaign, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, createGoal: async function(goal, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await createGoal(this, goal, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getGoal: async function(goalId, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getGoal(this, goalId, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, updateGoal: async function(goal, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await updateGoal(this, goal, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, convertGoal: async function(goalName, visitorSessionId, additionalData, customUserId){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await convertGoal(this, goalName, visitorSessionId, additionalData, customUserId) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, createLink: async function(link, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await createLink(this, link, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, getLink: async function(linkId, userSessionToken){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await getLink(this, linkId, userSessionToken) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, checkLink: async function(shortCode){ return new Promise(async(resolve, reject) => { try { - blockBrowser(this.initRequired()) + initCheck(this.loaded) let response = await checkLink(this, shortCode) resolve(response.data) } catch(e){ - if (typeof e.response !== 'undefined') { - reject(e.response.data) - } - reject(e.message) + reject(checkError(e)) } }) }, diff --git a/package.json b/package.json index 8237f67..ec97f17 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tonicpow-js", - "version": "0.1.10", + "version": "0.1.11", "description": "TonicPow API Library in JS - https://docs.tonicpow.com", "main": "lib/api.js", "repository": {