From 6bcc36ea971e767285d0dbae84efb300601630a3 Mon Sep 17 00:00:00 2001 From: host Date: Sun, 9 Aug 2026 14:42:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=BE=D0=BD=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api.js | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/frontend/src/api.js b/frontend/src/api.js index ced1396..c94c623 100644 --- a/frontend/src/api.js +++ b/frontend/src/api.js @@ -1,10 +1,25 @@ const BASE = "/api"; +const TOKEN_KEY = "access_token"; + +export function getToken() { + return sessionStorage.getItem(TOKEN_KEY); +} + +export function setToken(token) { + sessionStorage.setItem(TOKEN_KEY, token); +} + +export function clearToken() { + sessionStorage.removeItem(TOKEN_KEY); +} async function request(path, options = {}) { + const token = getToken(); const response = await fetch(`${BASE}${path}`, { ...options, headers: { "Content-Type": "application/json", + ...(token ? { Authorization: `Bearer ${token}` } : {}), ...(options.headers || {}), }, }); @@ -31,11 +46,29 @@ export async function login(email, password) { }); const data = await response.json().catch(() => ({})); if (!response.ok) throw new Error(data.detail || "Ошибка входа"); + setToken(data.access_token); return data; } -export function getMe(token) { - return request("/auth/me", { - headers: { Authorization: `Bearer ${token}` }, +export function getMe() { + return request("/auth/me"); +} + +export function listTemplates() { + return request("/templates"); +} + +export function createTemplate(payload) { + return request("/templates", { + method: "POST", + body: JSON.stringify(payload), }); } + +export function deactivateTemplate(id) { + return request(`/templates/${id}`, { method: "DELETE" }); +} + +export function listInstances() { + return request("/instances"); +}