From 562df2b88b9430a485af22b8dbf4a4b93cd605d6 Mon Sep 17 00:00:00 2001 From: Juan Carlos Ruvalcaba Date: Wed, 21 Apr 2021 13:56:26 -0700 Subject: [PATCH] Misc: -Move ajax handler file and connection file -Add axios interceptor, not tested -Move login service to user handling logic -Remove "user model" service file --- .gitignore | 2 +- src/js/{models => api}/AjaxHandler.js | 0 src/js/app.js | 13 +++++++++++++ src/js/controllers/users.js | 25 ++++++++++++++++++++++--- src/js/models/Users.js | 26 -------------------------- src/js/stores/user.js | 1 - 6 files changed, 36 insertions(+), 31 deletions(-) rename src/js/{models => api}/AjaxHandler.js (100%) delete mode 100644 src/js/models/Users.js diff --git a/.gitignore b/.gitignore index 0d19da8..880f6de 100644 --- a/.gitignore +++ b/.gitignore @@ -43,5 +43,5 @@ cordova/www/ www/ #Hide connection file -/src/js/models/ConnectionMode.js +/src/js/api/ConnectionMode.js /src/js/api/key.js diff --git a/src/js/models/AjaxHandler.js b/src/js/api/AjaxHandler.js similarity index 100% rename from src/js/models/AjaxHandler.js rename to src/js/api/AjaxHandler.js diff --git a/src/js/app.js b/src/js/app.js index 31ec6de..6ba3729 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -13,6 +13,9 @@ import cordovaApp from './cordova-app.js'; // Import Routes import routes from './routes.js'; +// Import htpp (axios) instance +import http from './api/config.js'; + // Import main app component import App from '../app.f7.html'; @@ -50,6 +53,16 @@ var app = new Framework7({ // Init cordova APIs (see cordova-app.js) cordovaApp.init(f7); } + + //Intercept axios call to determine if it gets (401 Unauthorized) response + http.interceptors.response.use(undefined, function (err) { + return new Promise(function (resolve, reject) { + if (err.status === 401 && err.config && !err.config.__isRetryRequest) { + this.$store.dispatch(logout); + } + throw err; + }); + }); }, }, }); \ No newline at end of file diff --git a/src/js/controllers/users.js b/src/js/controllers/users.js index 9b749ad..0a2c8e3 100644 --- a/src/js/controllers/users.js +++ b/src/js/controllers/users.js @@ -1,11 +1,31 @@ -import { Users } from '../models/Users.js' +import AjaxHandler from '../api/AjaxHandler.js'; +import endpoint from '../api/ConnectionMode.js'; let User = { + async getLogin (userdata, password){ + try{ + let params = { + method : "POST", + url : `${endpoint}/user/login`, + data : { + UserData : userdata, + UserPassword : password, + }, + dataType : "json", + } + var ajax = new AjaxHandler(); + let result = await ajax.request(params); + return result; + } + catch(err){ + throw err; + } + }, async checkLogin(user, pass){ if (user === "" || pass === ""){ throw new Error ("Ingrese usuario/contraseƱa"); } - let result = await Users.getLogin(user, pass); + let result = await this.getLogin(user, pass); if (result.data.status === false){ throw new Error (userdata.message); @@ -48,7 +68,6 @@ let User = { var expirationDate = new Date(data.expiration); if (today.getTime() > expirationDate.getTime()){ - //this.logOff(); return false; } else if (today < expirationDate){ diff --git a/src/js/models/Users.js b/src/js/models/Users.js deleted file mode 100644 index 4067dc5..0000000 --- a/src/js/models/Users.js +++ /dev/null @@ -1,26 +0,0 @@ -import AjaxHandler from './AjaxHandler.js'; -import endpoint from './ConnectionMode.js'; - -let Users = { - async getLogin (userdata, password){ - try{ - let params = { - method : "POST", - url : `${endpoint}/user/login`, - data : { - UserData : userdata, - UserPassword : password, - }, - dataType : "json", - } - var ajax = new AjaxHandler(); - let result = await ajax.request(params); - return result; - } - catch(err){ - throw err; - } - }, -}; - -export { Users }; diff --git a/src/js/stores/user.js b/src/js/stores/user.js index ec47c17..56bf751 100644 --- a/src/js/stores/user.js +++ b/src/js/stores/user.js @@ -32,7 +32,6 @@ const user = createStore({ logOut(){ return new Promise((resolve, reject) => { dispatch('logout'); - localStorage.removeItem('roles'); http.defaults.headers.common['Authorization']; resolve(); });