Added Axios and removed fetch...
Axios has CSXF integrated.
This commit is contained in:
@@ -5,8 +5,9 @@ export class AxiosSuccess {
|
||||
public status: number
|
||||
public data: any
|
||||
|
||||
constructor(data: any) {
|
||||
constructor(data: any, status: number) {
|
||||
this.data = data
|
||||
this.status = status
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +15,12 @@ export class AxiosError {
|
||||
public success: boolean = false
|
||||
public status: number
|
||||
public data: any
|
||||
public code: any
|
||||
|
||||
constructor(status: number, data?: any) {
|
||||
constructor(status: number, data?: any, code?: any) {
|
||||
this.status = status
|
||||
this.data = data
|
||||
this.code = code
|
||||
if (status !== 401) {
|
||||
// if (status == 0) message = 'Vérifiez votre connexion Internet';
|
||||
// NotificationsStore.actions.addNotification({ type: 'warning', message: message })
|
||||
|
||||
@@ -1,50 +1,25 @@
|
||||
import axios, { AxiosInstance, AxiosPromise, AxiosResponse, AxiosInterceptorManager } from 'axios'
|
||||
import Api from '@api'
|
||||
import * as Types from '@src/store/Api/ApiTypes'
|
||||
|
||||
async function sendRequest(url: string, lang: string, mytok: string, method: string, mydata: any) {
|
||||
async function sendRequest(url: string, method: string, mydata: any) {
|
||||
|
||||
console.log('sendRequest', method, url, '[', lang, ']')
|
||||
console.log('sendRequest', method, url)
|
||||
|
||||
const authHeader = new Headers()
|
||||
authHeader.append('content-Type', 'application/json')
|
||||
authHeader.append('Accept', 'application/json')
|
||||
if (url !== process.env.MONGODB_HOST + '/users/login') {
|
||||
authHeader.append('x-auth', mytok)
|
||||
// console.log('TOK PASSATO ALLA FETCH:', mytok)
|
||||
}
|
||||
// authHeader.append('accept-language', lang)
|
||||
|
||||
let configInit: RequestInit
|
||||
|
||||
if (method === 'GET') {
|
||||
configInit = {
|
||||
method: method,
|
||||
cache: 'no-cache',
|
||||
mode: 'cors',
|
||||
headers: authHeader
|
||||
}
|
||||
} else if (method === 'DELETE') {
|
||||
configInit = {
|
||||
method: method,
|
||||
cache: 'no-cache',
|
||||
mode: 'cors',
|
||||
headers: authHeader
|
||||
}
|
||||
} else {
|
||||
configInit = {
|
||||
method: method,
|
||||
cache: 'no-cache',
|
||||
mode: 'cors',
|
||||
headers: authHeader
|
||||
}
|
||||
|
||||
if (mydata !== null)
|
||||
configInit.body = JSON.stringify(mydata)
|
||||
|
||||
}
|
||||
|
||||
const request: Promise<Response> = fetch(url, configInit)
|
||||
return request
|
||||
let request
|
||||
if (method === 'GET')
|
||||
request = Api.get(url, mydata)
|
||||
else if (method === 'POST')
|
||||
request = Api.post(url, mydata)
|
||||
else if (method === 'DELETE')
|
||||
request = Api.Delete(url, mydata)
|
||||
else if (method === 'PUT')
|
||||
request = Api.put(url, mydata)
|
||||
|
||||
const req: Promise<Types.AxiosSuccess | Types.AxiosError> = request
|
||||
return req
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default sendRequest
|
||||
|
||||
@@ -3,8 +3,11 @@ import axios, { AxiosInstance, AxiosPromise, AxiosResponse, AxiosInterceptorMana
|
||||
import router from '@router'
|
||||
import {clone} from 'lodash'
|
||||
import * as Types from './ApiTypes'
|
||||
import { GlobalStore, UserStore } from '@store'
|
||||
import { rescodes } from '@src/store/Modules/rescodes'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
export const API_URL = process.env.API_URL
|
||||
export const API_URL = process.env.MONGODB_HOST
|
||||
export const axiosInstance: AxiosInstance = axios.create({
|
||||
baseURL: API_URL,
|
||||
headers: {
|
||||
@@ -32,35 +35,83 @@ export const removeAuthHeaders = () => {
|
||||
delete axiosInstance.defaults.headers.Authorization
|
||||
}
|
||||
|
||||
async function Request(type: string, path: string, payload: any, noAuth?: boolean): Promise<Types.AxiosSuccess | Types.AxiosError> {
|
||||
async function Request(type: string, path: string, payload: any, setAuthToken?: boolean): Promise<Types.AxiosSuccess | Types.AxiosError> {
|
||||
let ricevuto = false
|
||||
try {
|
||||
console.log(`Axios Request [${type}]:`, axiosInstance.defaults)
|
||||
let response: AxiosResponse
|
||||
if (type === 'post' || type === 'put') {
|
||||
response = await axiosInstance[type](path, payload, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
'x-auth': UserStore.state.x_auth_token
|
||||
}
|
||||
})
|
||||
console.log(new Types.AxiosSuccess(response.data))
|
||||
return new Types.AxiosSuccess(response.data)
|
||||
ricevuto = true
|
||||
// console.log(new Types.AxiosSuccess(response.data, response.status))
|
||||
|
||||
const setAuthToken = (path === '/updatepwd')
|
||||
|
||||
if (response.status === 200) {
|
||||
let x_auth_token = ''
|
||||
try {
|
||||
if (setAuthToken || (path === '/users/login')) {
|
||||
x_auth_token = String(response.headers['x-auth'])
|
||||
|
||||
if (x_auth_token === '') {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_AUTHENTICATION)
|
||||
}
|
||||
if (setAuthToken) {
|
||||
UserStore.mutations.UpdatePwd(x_auth_token)
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
}
|
||||
|
||||
UserStore.mutations.setAuth(x_auth_token)
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
}
|
||||
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
UserStore.mutations.setServerCode(rescodes.OK)
|
||||
} catch (e) {
|
||||
if (setAuthToken) {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_AUTHENTICATION)
|
||||
UserStore.mutations.setAuth('')
|
||||
}
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
return Promise.reject(new Types.AxiosError(serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN, null, rescodes.ERR_AUTHENTICATION))
|
||||
}
|
||||
}
|
||||
|
||||
return new Types.AxiosSuccess(response.data, response.status)
|
||||
} else if (type === 'get' || type === 'delete') {
|
||||
// @ts-ignore
|
||||
response = await axiosInstance[type](path, {
|
||||
params: payload,
|
||||
headers: {'Content-Type': 'application/json'}
|
||||
headers: {'Content-Type': 'application/json',
|
||||
'x-auth': UserStore.state.x_auth_token
|
||||
}
|
||||
})
|
||||
return new Types.AxiosSuccess(response.data)
|
||||
return new Types.AxiosSuccess(response.data, response.status)
|
||||
} else if (type === 'postFormData') {
|
||||
response = await axiosInstance.post(path, payload, {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
'Content-Type': 'multipart/form-data',
|
||||
'x-auth': UserStore.state.x_auth_token
|
||||
}
|
||||
})
|
||||
return new Types.AxiosSuccess(response.data)
|
||||
return new Types.AxiosSuccess(response.data, response.status)
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
if (process.env.DEV) {
|
||||
console.log('ERROR using', path, error, 'ricevuto=', ricevuto)
|
||||
}
|
||||
if (!ricevuto) {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_SERVERFETCH)
|
||||
} else {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_GENERICO)
|
||||
}
|
||||
|
||||
if (error.response) {
|
||||
return Promise.reject(new Types.AxiosError(error.response.status, error.response.data))
|
||||
} else {
|
||||
|
||||
@@ -13,6 +13,7 @@ import { GlobalStore, UserStore } from '@modules'
|
||||
import globalroutines from './../../globalroutines/index'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
import router from '@router'
|
||||
import * as Types from "@src/store/Api/ApiTypes"
|
||||
|
||||
|
||||
// const algoliaApi = new AlgoliaSearch()
|
||||
@@ -47,86 +48,31 @@ export namespace ApiTool {
|
||||
})
|
||||
}
|
||||
|
||||
export async function SendReq(url: string, method: string, mydata: any, setAuthToken: boolean = false) {
|
||||
export async function SendReq(url: string, method: string, mydata: any, setAuthToken: boolean = false): Promise<Types.AxiosSuccess | Types.AxiosError> {
|
||||
UserStore.mutations.setServerCode(rescodes.EMPTY)
|
||||
UserStore.mutations.setResStatus(0)
|
||||
return await new Promise(function (resolve, reject) {
|
||||
let ricevuto = false
|
||||
|
||||
return sendRequest(url, UserStore.state.lang, UserStore.state.x_auth_token, method, mydata)
|
||||
.then(resreceived => {
|
||||
console.log('resreceived', resreceived)
|
||||
ricevuto = true
|
||||
let res = resreceived.clone()
|
||||
if (process.env.DEV) {
|
||||
// console.log('SendReq RES [', res.status, ']', res)
|
||||
}
|
||||
return sendRequest(url, method, mydata)
|
||||
.then(res => {
|
||||
console.log('res', res)
|
||||
|
||||
UserStore.mutations.setResStatus(res.status)
|
||||
if (res.status === 200) {
|
||||
let x_auth_token = ''
|
||||
try {
|
||||
if (setAuthToken) {
|
||||
x_auth_token = String(res.headers.get('x-auth'))
|
||||
|
||||
if (x_auth_token === '') {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_AUTHENTICATION)
|
||||
}
|
||||
UserStore.mutations.setAuth(x_auth_token)
|
||||
|
||||
if (url === process.env.MONGODB_HOST + '/updatepwd') {
|
||||
UserStore.mutations.UpdatePwd({ x_auth_token })
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
}
|
||||
}
|
||||
|
||||
UserStore.mutations.setServerCode(rescodes.OK)
|
||||
} catch (e) {
|
||||
if (setAuthToken) {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_AUTHENTICATION)
|
||||
UserStore.mutations.setAuth('')
|
||||
}
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
return reject({ code: rescodes.ERR_AUTHENTICATION })
|
||||
}
|
||||
} else if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||
if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||
// Forbidden
|
||||
// You probably is connectiong with other page...
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_AUTHENTICATION)
|
||||
UserStore.mutations.setAuth('')
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
router.push('/signin')
|
||||
return reject({ code: rescodes.ERR_AUTHENTICATION })
|
||||
}
|
||||
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
|
||||
return res.json()
|
||||
.then((body) => {
|
||||
// console.log('BODY RES = ', body)
|
||||
return resolve({ res, body, status: res.status })
|
||||
})
|
||||
.catch(e => {
|
||||
return resolve({ res, body: {}, status: res.status })
|
||||
// Array not found...
|
||||
// UserStore.mutations.setServerCode(rescodes.ERR_GENERICO)
|
||||
// return reject({ code: rescodes.ERR_GENERICO, status: res.status })
|
||||
})
|
||||
return resolve(res)
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
if (process.env.DEV) {
|
||||
console.log('ERROR using', url, error, 'ricevuto=', ricevuto)
|
||||
}
|
||||
if (!ricevuto) {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_SERVERFETCH)
|
||||
} else {
|
||||
UserStore.mutations.setServerCode(rescodes.ERR_GENERICO)
|
||||
}
|
||||
|
||||
GlobalStore.mutations.setStateConnection(ricevuto ? 'online' : 'offline')
|
||||
|
||||
return reject({ code: error })
|
||||
console.log('error', error)
|
||||
return reject(error)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user