· 7 years ago · Jul 07, 2018, 08:02 AM
1import axios from 'axios'
2import { apiUrl } from 'helpers/config'
3
4const client = axios.create({
5 baseURL: apiUrl,
6 json: true
7})
8
9const Api = {
10 async signIn (data) {
11
12 return new Promise((resolve, reject) => {
13 client({
14 method: 'post',
15 url: '/oauth/token',
16 data,
17 headers: {
18 Authorization: `Bearer ${accessToken}`
19 }
20 }).then(response => {
21 resolve(response.data)
22 }).catch(error => {
23 reject(error.response)
24 })
25 })
26 },
27
28 async call (method, resource, data) {
29 let accessToken = ''
30
31 return new Promise((resolve, reject) => {
32 token.get().then(sessionToken => {
33 accessToken = sessionToken
34 })
35
36 client({
37 method,
38 url: resource,
39 data,
40 headers: {
41 Authorization: `Bearer ${accessToken}`
42 }
43 }).then(response => {
44 resolve(response.data)
45 }).catch(error => {
46 reject(error.response)
47 })
48 })
49 },
50
51 async get (resource, data) {
52 return new Promise((resolve, reject) => {
53 this.call('get', resource, data)
54 .then(response => {
55 resolve(response)
56 }).catch(error => {
57 reject(error)
58 })
59 })
60 },
61
62 async post (resource, data) {
63 return new Promise((resolve, reject) => {
64 this.call('post', resource, data)
65 .then(response => {
66 resolve(response)
67 }).catch(error => {
68 reject(error)
69 })
70 })
71 },
72
73 async put (resource, data) {
74 return new Promise((resolve, reject) => {
75 this.call('put', resource, data)
76 .then(response => {
77 resolve(response)
78 }).catch(error => {
79 reject(error)
80 })
81 })
82 }
83}
84
85export default Api