mihalkoff

api.js

Mar 24th, 2022
655
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { clearUserDat, getUserData, setUserData } from "../util.js";
  2.  
  3. const host = 'http://localhost:3030';
  4.  
  5. async function request(method, url, data) {
  6.     const options = {
  7.         method,
  8.         headers: {}
  9.     };
  10.  
  11.     if(data != undefined) {
  12.         options.headers['Content-Type'] = 'application/json';
  13.         options.body = JSON.stringify(data);
  14.     }
  15.  
  16.     const user = JSON.parse(localStorage.getItem('user'));
  17.     if(user) {
  18.         const token = user.accessToken;
  19.         options.headers['X-Authorization'] = token;
  20.     }
  21.  
  22.     try {
  23.         const response = await fetch(host + url, options);
  24.  
  25.         if(response.ok != true) {
  26.             if(response.status == 403) {
  27.                 localStorage.removeItem('user');
  28.             }
  29.             const error = await response.json();
  30.             throw new Error(error.message);
  31.         }
  32.  
  33.         if(response.status == 204) {
  34.             return response;
  35.         } else {
  36.             return response.json();
  37.         }
  38.     } catch(err) {
  39.         alert(err.message);
  40.         throw err;
  41.     }
  42. }
  43.  
  44. const get = request.bind(null, 'get');
  45. const post = request.bind(null, 'post');
  46. const put = request.bind(null, 'put');
  47. const del = request.bind(null, 'delete');
  48.  
  49. export {
  50.     get,
  51.     post,
  52.     put,
  53.     del as delete
  54. };
Advertisement
Add Comment
Please, Sign In to add comment