AniX/frontend/app/api/api-utils.js

57 lines
1.4 KiB
JavaScript

export const isResponseOk = (response) => {
return !(response instanceof Error);
};
export const getData = async (url) => {
try {
const response = await fetch(url);
if (response.status !== 200) {
throw new Error("Ошибка получения данных");
}
return await response.json();
} catch (error) {
return error;
}
};
export const authorize = async (url, data) => {
try {
const response = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
if (response.status !== 200) {
throw new Error("Ошибка получения данных");
}
return await response.json();
} catch (error) {
return error;
}
};
export const getMe = async (url, jwt) => {
try {
const response = await fetch(`${url}?token=${jwt}`, {
method: "GET",
});
if (response.status !== 200) {
throw new Error("Ошибка получения данных");
}
return await response.json();
} catch (error) {
return error;
}
};
export function setJWT(jwt, user_id) {
const data = { jwt: jwt, user_id: user_id };
localStorage.setItem("data", JSON.stringify(data));
}
export function getJWT() {
const data = localStorage.getItem("data");
return JSON.parse(data);
}
export function removeJWT() {
localStorage.removeItem("data");
}