| /* |
| * Licensed to Apache Software Foundation (ASF) under one or more contributor |
| * license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright |
| * ownership. Apache Software Foundation (ASF) licenses this file to you under |
| * the Apache License, Version 2.0 (the "License"); you may |
| * not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| 'use strict'; |
| |
| import Vue from 'vue'; |
| import axios from 'axios'; |
| |
| // Full config: https://github.com/axios/axios#request-config |
| // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || ''; |
| // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; |
| // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; |
| |
| let config = { |
| baseURL: '/api/v1', |
| // timeout: 60 * 1000, // Timeout |
| // withCredentials: true, // Check cross-site Access-Control |
| }; |
| |
| const _axios = axios.create(config); |
| |
| _axios.interceptors.request.use( |
| function (config) { |
| // Do something before request is sent |
| return config; |
| }, |
| function (error) { |
| // Do something with request error |
| return Promise.reject(error); |
| }, |
| ); |
| |
| // Add a response interceptor |
| _axios.interceptors.response.use( |
| function (response) { |
| // Do something with response data |
| return response; |
| }, |
| function (error) { |
| // Do something with response error |
| return Promise.reject(error); |
| }, |
| ); |
| |
| Plugin.install = function (Vue, options) { |
| Vue.axios = _axios; |
| window.axios = _axios; |
| Object.defineProperties(Vue.prototype, { |
| axios: { |
| get() { |
| return _axios; |
| }, |
| }, |
| $axios: { |
| get() { |
| return _axios; |
| }, |
| }, |
| }); |
| }; |
| |
| Vue.use(Plugin); |
| |
| export default Plugin; |