OSDN Git Service

effda3cea6707dd2c2976b822ec58adac3695b94
[bytom/bytom-node-sdk.git] / src / connection.js
1 import axios from 'axios'
2 import btoa from 'btoa'
3
4 class Connection {
5   constructor(baseUrl, token = '') {
6     this.baseUrl = baseUrl
7     this.token = token
8   }
9
10   request(path, body = {}) {
11     let config = {
12       url: `${this.baseUrl}${path}`,
13       method: 'post',
14       headers: {
15         Accept: 'application/json',
16       },
17       data: body,
18       timeout: 1000
19     }
20
21     if (this.token) {
22       config.headers['Authorization'] = `Basic ${btoa(this.token)}`
23     }
24
25     return axios.request(config).then(resp => {
26       if (resp.data.status === 'fail') {
27         throw resp.data.msg
28       } else if (resp.data.status === 'success') {
29         return resp.data.data
30       }
31
32       return resp.data
33     })
34   }
35 }
36
37 export default Connection