http.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. import Axios from 'axios';
  2. import { PageList } from '../pages/Router';
  3. import app from '../../app.json';
  4. //config
  5. //const hostUrl = 'http://161.117.183.142/';
  6. const hostUrl = app.product ? 'https://csms.chargeco.global/' : 'https://uat.chargeco.global/';
  7. const service = 'chargeco/'
  8. export const host = hostUrl;
  9. const DEBUG = app.debug && !app.product;
  10. Axios.defaults.timeout = 30000;
  11. Axios.interceptors.response.use((response) => {
  12. if (DEBUG) {
  13. console.log('-------', response.config.method, response.config.url);
  14. console.log('-------', response.status, JSON.stringify(response.data));
  15. }
  16. if (response.data.code == '401' || response.data.code == '402') {
  17. setAccessToken('');
  18. startPage(PageList.login, {action: response.data.code});
  19. return Promise.reject('Need sign in');
  20. }
  21. if (response.data.code == '500' || response.data.code == '502') {
  22. setAccessToken('');
  23. return Promise.reject('Sever error');
  24. }
  25. return response.data;
  26. }, (error) => {
  27. console.info('-------error', error);
  28. return Promise.reject(error);
  29. });
  30. export const get = (path, params) => {
  31. return new Promise((resolve, reject) => {
  32. Axios.get(host + service + path, {
  33. params: params,
  34. method: 'GET',
  35. headers: {
  36. 'Accept': 'application/json',
  37. 'lang': global.currentLocale,
  38. 'accessToken': global.accessToken ?? ''
  39. }
  40. }).then(res => {
  41. if (res.success) {
  42. resolve(res);
  43. } else if (res.msg) {
  44. reject({err: res.msg, ...res});
  45. } else {
  46. reject('Request Failed');
  47. }
  48. }).catch(error => {
  49. console.info('HTTP-ERROR', error);
  50. reject(error);
  51. });
  52. });
  53. }
  54. export const post = (path, params) => {
  55. return new Promise((resolve, reject) => {
  56. Axios.post(host + service + path, params, {
  57. method: 'POST',
  58. headers: {
  59. 'Accept': 'application/json',
  60. 'lang': global.currentLocale,
  61. 'accessToken': global.accessToken ?? ''
  62. }
  63. }).then(res => {
  64. if (res.success) {
  65. resolve(res);
  66. } else if (res.msg) {
  67. reject({err: res.msg, ...res});
  68. } else {
  69. reject('Request Failed');
  70. }
  71. }).catch(error => {
  72. console.info('HTTP-ERROR', error);
  73. reject(error);
  74. });
  75. });
  76. }
  77. export const upload = (path, params, header={}) => {
  78. return new Promise((resolve, reject) => {
  79. Axios.post(host + service + path, params, {
  80. method: 'POST',
  81. headers: {
  82. 'lang': global.currentLocale,
  83. 'Accept': 'application/json',
  84. 'Content-Type': 'multipart/form-data',
  85. 'accessToken': global.accessToken ?? '',
  86. ...header
  87. }
  88. }).then(res => {
  89. if (res.success) {
  90. resolve(res);
  91. } else if (res.msg) {
  92. reject({err: res.msg, ...res});
  93. } else {
  94. reject('Request Failed');
  95. }
  96. }).catch(error => {
  97. console.info('HTTP-ERROR', error);
  98. reject(error);
  99. });
  100. })
  101. }
  102. export const del = (path) => {
  103. return new Promise((resolve, reject) => {
  104. Axios.delete(host + service + path, {
  105. method: 'DELETE',
  106. headers: {
  107. 'Accept': 'application/json',
  108. 'lang': global.currentLocale,
  109. 'accessToken': global.accessToken ?? ''
  110. }
  111. }).then(res => {
  112. if (res.success) {
  113. resolve(res);
  114. } else if (res.msg) {
  115. reject({err: res.msg, ...res});
  116. } else {
  117. reject('Request Failed');
  118. }
  119. }).catch(error => {
  120. console.info('HTTP-ERROR', error);
  121. reject(error);
  122. });
  123. });
  124. }
  125. export const GET = (url, params) => {
  126. var request = host + service + url;
  127. if (params) {
  128. var keys = ''
  129. for (let key in params) {
  130. if (keys != '') {
  131. keys += '&';
  132. }
  133. keys += key + '=' + encodeURI(params[key]);
  134. }
  135. if (keys !== '') {
  136. request += '?' + keys;
  137. }
  138. }
  139. return new Promise((resolve, reject) => {
  140. fetch(request, {
  141. method: 'GET',
  142. headers: {
  143. 'lang': global.currentLocale,
  144. 'Accept': 'application/json',
  145. 'accessToken': global.accessToken ?? ''
  146. }.then((response) => {
  147. if (response.ok) {
  148. return response.json();
  149. } else {
  150. reject(response);
  151. }
  152. }).then(data => {
  153. resolve(data);
  154. }).catch((error) => {
  155. reject(error);
  156. })
  157. });
  158. });
  159. }
  160. export const POST = (url, params) => {
  161. return new Promise((resolve, reject) => {
  162. fetch(host + service + url, {
  163. method: 'POST',
  164. headers: {
  165. 'lang': global.currentLocale,
  166. 'Accept': 'application/json',
  167. 'content-type': 'application/json',
  168. 'accessToken': global.accessToken ?? ''
  169. },
  170. body: JSON.stringify(params)
  171. }).then((response) => {
  172. if (response.ok) {
  173. return response.json();
  174. } else {
  175. reject(response);
  176. }
  177. }).then(data => {
  178. resolve(data);
  179. }).catch((error) => {
  180. reject(error);
  181. })
  182. });
  183. }
  184. export const SOCKET = (url) => {
  185. const ws = new WebSocket(url); // like 'wss://vbea.com/path'
  186. ws.onopen = () => {
  187. // connection opened
  188. ws.send('something'); // send a message
  189. };
  190. ws.onmessage = (e) => {
  191. // a message was received
  192. console.log(e.data);
  193. };
  194. ws.onerror = (e) => {
  195. // an error occurred
  196. console.log(e.message);
  197. };
  198. ws.onclose = (e) => {
  199. // connection closed
  200. console.log(e.code, e.reason);
  201. };
  202. }
  203. export const setAccessToken = token => {
  204. global.accessToken = token;
  205. }