From 2317a59d73316fdd5516379fdd83809ea4a2fb0f Mon Sep 17 00:00:00 2001 From: saeid Date: Wed, 7 Aug 2019 16:00:13 +0430 Subject: [PATCH] url generatore and api --- .rnd | Bin 0 -> 1024 bytes public/mix-manifest.json | 15 ++----- resources/js/Global/services/api.services.js | 26 ++++++++++++ .../js/Global/services/storage.services.js | 40 ++++++++++++++++++ resources/js/Global/services/url.service.js | 38 ++++++++--------- 5 files changed, 88 insertions(+), 31 deletions(-) create mode 100644 .rnd create mode 100644 resources/js/Global/services/api.services.js create mode 100644 resources/js/Global/services/storage.services.js diff --git a/.rnd b/.rnd new file mode 100644 index 0000000000000000000000000000000000000000..681590843164320b6c2c2c21cdb0a6c2d1761cfe GIT binary patch literal 1024 zcmV+b1poU5PDOy;SugxVlx1xV_OK*q$@-lOu}v|yR2ha@282-?{QuBfZ9@>vVDs8u z@L;n4YNJIupMeTskuU=PLBnbSo1!iFV8;viNvo`yW3yatos6?Phj`I5#hnNNC_4tX z1nzX-nzk01aU)nu6<7T#pW?yKLXJ9Ckfd6vd?6q{n8p4&-w8aOD=4>3R4#V7wg7Oz z1}XjvN=ZZHu9Dh=-21rMHjaMTzaH|9KCteZjVgzhkKh~MnS1IBwHy;oLv4KnI?td( zl%JMoN?74RO%PaX6SxUkri-LiDe~z?U(ds-#l?EO6za#3bK!yP#@y2K#3pp$<~ShV zd15VI%xNEh(LaQTq7dErx?9Jcye9&F11Yik8nL*?NtM1`i$tbOS zz^B-V6ON+q;}Q&Tcy0!@RP7F}=$MXqFjG~Unec@T@(^6H6H0%%YrxY$DkKd++MR|k z61}y>IN_Ab(s&}lm3iP<-&_gw%|%lk+RU#gU#khpp4Bmb%8c(HN?2BW{wO3^!O&Jq z)lb+ru4O&n6b?o5f@@&2YL<9a!rHR!B{X>m7ZV0U-SvW*#Rmp{p6wztMiwQ;03hOy z>lE)|N)Q~71cU1RR`+LqmCo?UFqt43JJ zFVB_Dbc&Mn@ayZ@KJ3E1@7vx2J!QmK)0J#Ase*M%?+*_4JN=3CM|HW_f@_GNPWWWz zSK?ojMVf&$6JTlBeZ~FcQVJmAZdP=^cWvOFg5!PU_H7N>mRd&0C3qWKYSB>9 z67k8%Vtuu0qS zH8!)hQv2B>)zRkUBKT%|6Bj(DO-4L7Z;F-KL-M;S^aBugtBs-Ci8VUS;n4j%6r1wE zEqj@5-DjS+?zt>7|7@W8ves`zNxcruxdTmMY#$enI+o1ogD~;6jFBU~?4`8>x3vd< uW=S4=ZYLyqJ*-Yu6#fT}cjRMQ#vpIN_*>!97f26d_P3blRF1l&>>>>>> 7c68b23eacbbabbd37a3ff22859871fee1f70e58 + "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=fd60b024e273b82a7845", + "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=1840438a7c2639ecc0eb", + "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=9f4332442b1eb2e3507e", + "/js/vue/User/app.js": "/js/vue/User/app.js?id=bf0ac83a9847d4842b17" } diff --git a/resources/js/Global/services/api.services.js b/resources/js/Global/services/api.services.js new file mode 100644 index 0000000..cf3ff42 --- /dev/null +++ b/resources/js/Global/services/api.services.js @@ -0,0 +1,26 @@ +import axios from 'axios' +import { TokenService } from './storage.services' + +const ApiService = { + + init(baseURL) { + axios.defaults.baseURL = baseURL; + }, + + setHeader() { + axios.defaults.headers.common["Accept"] = `application/json`; + axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + }, + + setAuthHeader() { + axios.defaults.headers.common["Authorization"] = `Bearer ${TokenService.getToken()}`; + }, + + removeAuthHeader() { + axios.defaults.headers.common["Authorization"] = null; + }, + +} + +export default ApiService +export { ApiService } diff --git a/resources/js/Global/services/storage.services.js b/resources/js/Global/services/storage.services.js new file mode 100644 index 0000000..7de6845 --- /dev/null +++ b/resources/js/Global/services/storage.services.js @@ -0,0 +1,40 @@ +import qs from 'qs'; + +const TOKEN_KEY = 'access_token' +const USER = 'user' +/** + * Manage the how Access Tokens are being stored and retreived from storage. + * + * Current implementation stores to localStorage. Local Storage should always be + * accessed through this instace. +**/ +const TokenService = { + getToken() { + return localStorage.getItem(TOKEN_KEY) + }, + + saveToken(accessToken = null) { + localStorage.setItem(TOKEN_KEY, accessToken) + }, + + removeToken() { + localStorage.removeItem(TOKEN_KEY) + }, +} + +const UserService = { + getUser() { + return qs.parse(localStorage.getItem(USER)) + }, + + saveUser(user = null) { + user = qs.stringify(user); + localStorage.setItem(USER, user) + }, + + removeUser() { + localStorage.removeItem(USER) + }, +} + +export { TokenService, UserService } diff --git a/resources/js/Global/services/url.service.js b/resources/js/Global/services/url.service.js index 0ad7496..472e13a 100644 --- a/resources/js/Global/services/url.service.js +++ b/resources/js/Global/services/url.service.js @@ -1,27 +1,25 @@ -const urlGenerator = (url, parameters = {}) => { - let urlPath = url.split("/"); - let newPath = []; - for (const iterator of urlPath) { - if (iterator.startsWith(":")) { - if (iterator.endsWith("?")) { - if (parameters.hasOwnProperty(iterator.slice(1, -1))) { - newPath.push(parameters[iterator.slice(1, -1)]); +const urlGenerator = (urls) => { + return function(routeAddress, parameters) { + let urlPath = urls[routeAddress].split("/"); + let newPath = []; + for (const iterator of urlPath) { + if (iterator.startsWith(":")) { + if (iterator.endsWith("?")) { + if (parameters.hasOwnProperty(iterator.slice(1, -1))) { + newPath.push(parameters[iterator.slice(1, -1)]); + } + } else { + console.assert(parameters.hasOwnProperty(iterator.slice(1)), 'parameter "' + iterator.slice(1) + '" not specified in parameters.') + newPath.push(parameters[iterator.slice(1)]); } } else { - console.assert( - parameters.hasOwnProperty(iterator.slice(1)), - 'parameter "' + - iterator.slice(1) + - '" not specified in parameters.' - ); - newPath.push(parameters[iterator.slice(1)]); + newPath.push(iterator); } - } else { - newPath.push(iterator); } + return '/' + newPath.join("/"); } - - return ("/" + newPath.join("/")).replace("//", "/"); }; -export { urlGenerator }; +export { + urlGenerator +}