Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import localStorage from 'local-storage-fallback';
  2.  
  3. function initRequest(req) {
  4.   const headers = new Headers();
  5.   const authToken = JSON.parse(localStorage.getItem('authToken'));
  6.   if (authToken) {
  7.     headers.append('Authorization', `Bearer ${authToken}`);
  8.   }
  9.   headers.append('Accept', 'application/json, text/plain');
  10.   headers.append('Content-Type', 'application/json');
  11.   headers.append('pragma', 'no-cache');
  12.   headers.append('Cache-control', 'no-cache, no-store');
  13.  headers.append('X-AUTH-TOKEN', 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlJFUTBNVVE1TjBOQ1JUSkVNemszTTBVMVJrTkRRMFUwUTBNMVJFRkJSamhETWpkRU5VRkJRZyIsImtleWlkIjoiUkVRME1VUTVOME5DUlRKRU16azNNMFUxUmtORFEwVTBRME0xUkVGQlJqaERNamRFTlVGQlFnIn0.eyJpc3MiOiJodHRwczovL2ZpZG0uZ2lneWEuY29tL2p3dC8zX1JDckNiTW43VDdmSnR0Szdzd2lfcnoyTUNweXAyUkI2eENQQWRTNnpsdFpRZWk1bV9OS2RnQ3VETzN0WmNEQzYvIiwiYXBpS2V5IjoiM19SQ3JDYk1uN1Q3Zkp0dEs3c3dpX3J6Mk1DcHlwMlJCNnhDUEFkUzZ6bHRaUWVpNW1fTktkZ0N1RE8zdFpjREM2IiwiaWF0IjoxNTcyMDAwOTk3LCJleHAiOjE1NzIwMDEyOTcsInN1YiI6ImEzMmMzYjYyNjFlOTQ3OGZiODgyYzBiYzlkNzdiMzZlIn0.BO0d2LgEz-begL9_bTaV4hgspvgpHSJZR3aP6y4cikAhGOHCWwXdwBPciV1UCOIekgkq3JSlZQiNqX59nZklz4KEa27LD91s4DyZTscdhwWFDGo0Tv5gdnOz8aI2gDfXumrlbfHtYGdDE6kUMrrjzl4-mkpK9PMDVxrkROF64FtVLJRRhdDyhVOmOljK5FRMvjBO03XSD-_C6ipKBOlUOBkt4-76TywzyKQeMCdqjpbm7EIPFeye4w7xBMscvhe6L_cPZ-klrnINZTEOoWbS1r8vcilBd_ApAsJjwE7NP_2NiYJqK8UDRLct6Rjf4YJQMofj_0oyHw2b7qLrtANjKg');
  14.   /**
  15.    * ensure proxy https redirect is not blocked
  16.    */
  17.   if (window.location.protocol.indexOf('https') !== -1) {
  18.     headers.append('X-Forwarded-Proto', 'https');
  19.     headers.append('X-Forwarded-Port', '443');
  20.   }
  21.  
  22.   return Object.assign(
  23.     {
  24.       method: 'GET',
  25.       headers,
  26.       cache: 'no-store',
  27.       credentials: 'same-origin',
  28.       mode: 'cors'
  29.     },
  30.     req || {}
  31.   );
  32. }
  33.  
  34. export function parseResponse(response) {
  35.   if (response.ok) {
  36.     return response.status === 204 ? { status: 'ok' } : response.json();
  37.   } else {
  38.     const error = {
  39.       code: response.status,
  40.       message: response.statusText
  41.     };
  42.     throw error;
  43.   }
  44. }
  45.  
  46. class ApiClient {
  47.   get(url, failCallback) {
  48.     return fetch(
  49.       url,
  50.       initRequest({
  51.         method: 'GET'
  52.       })
  53.     )
  54.       .then(parseResponse)
  55.       .catch(error => {
  56.         failCallback && failCallback(error);
  57.       });
  58.   }
  59.   post(url, payload, failCallback) {
  60.     return fetch(
  61.       url,
  62.       initRequest({
  63.         body: JSON.stringify(payload),
  64.         method: 'POST'
  65.       })
  66.     )
  67.       .then(parseResponse)
  68.       .catch(error => {
  69.         failCallback && failCallback(error);
  70.       });
  71.   }
  72. }
  73.  
  74. export default new ApiClient();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement