Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export const settings = {
- host: ''
- };
- export function getUserData() {
- const user = sessionStorage.getItem('user');
- if (user) {
- return JSON.parse(user);
- } else {
- return undefined;
- }
- }
- function setUserData(user) {
- sessionStorage.setItem('user', JSON.stringify(user));
- }
- function clearUserData(user) {
- sessionStorage.removeItem('user');
- }
- async function request(url, options) {
- try {
- const response = await fetch(url, options);
- if (response.ok == false) {
- const error = await response.json();
- throw new Error(error.message);
- }
- try {
- const data = await response.json();
- return data;
- } catch (err) {
- return response;
- }
- } catch (err) {
- //alert(err.message);
- throw err;
- }
- }
- function createOptions(method = 'get', body) {
- const options = {
- method,
- headers: {}
- }
- const user = getUserData();
- if (user) {
- options.headers['X-Authorization'] = user.accessToken;
- }
- if (body) {
- options.headers['Content-Type'] = 'application/json';
- options.body = JSON.stringify(body);
- }
- return options;
- }
- async function get(url) {
- return await request(url, createOptions());
- }
- async function post(url, data) {
- return await request(url, createOptions('post', data));
- }
- async function put(url, data) {
- return await request(url, createOptions('put', data));
- }
- async function del(url) {
- return await request(url, createOptions('delete'));
- }
- async function login(username, password) {
- const result = await post(settings.host + '/users/login', { username, password });
- setUserData(result);
- return result;
- }
- async function register(username, password) {
- const result = await post(settings.host + '/users/register', { username, password });
- setUserData(result);
- return result;
- }
- export function logout() {
- const result = get(settings.host + '/users/logout');
- clearUserData();
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement