/
DaniilSk
/
DesignLab
Обзор
Документация
Войти
/
DaniilSk
/
DesignLab
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
admin-frontend/src/shared/api/admin.ts
34 строки
3 KB
Даниил
feat(admin): initialize admin frontend
13 июл 2026, 23:42
13 июл 2026, 23:42
1cc58f6
Код
Авторство
О чём код?
import { adminRequest, setAdminToken } from '@/shared/api/client' import type { AdminDashboard, ArticleRead, EventRead, LoyaltyRead, Page, SpeakerRead, UserRead } from '@/types/api' export async function login(username: string, password: string) { const data = await adminRequest<{ access_token: string; username: string }>('/auth/login', { method: 'POST', body: JSON.stringify({ username, password }), }) setAdminToken(data.access_token) return data } export async function logout() { await adminRequest('/auth/logout', { method: 'POST' }).catch(() => undefined) setAdminToken(null) } export const getMe = () => adminRequest<{ username: string }>('/auth/me') export const getDashboard = () => adminRequest<AdminDashboard>('/dashboard') export const getUsers = (query = '') => adminRequest<Page<UserRead>>(`/users${query}`) export const patchUser = (id: string, payload: Record<string, unknown>) => adminRequest<UserRead>(`/users/${id}`, { method: 'PATCH', body: JSON.stringify(payload) }) export const getEvents = () => adminRequest<Page<EventRead>>('/events') export const createEvent = (payload: Record<string, unknown>) => adminRequest<EventRead>('/events', { method: 'POST', body: JSON.stringify(payload) }) export const patchEvent = (id: string, payload: Record<string, unknown>) => adminRequest<EventRead>(`/events/${id}`, { method: 'PATCH', body: JSON.stringify(payload) }) export const archiveEvent = (id: string) => adminRequest(`/events/${id}`, { method: 'DELETE' }) export const getSpeakers = () => adminRequest<SpeakerRead[]>('/speakers') export const createSpeaker = (payload: Record<string, unknown>) => adminRequest<SpeakerRead>('/speakers', { method: 'POST', body: JSON.stringify(payload) }) export const patchSpeaker = (id: string, payload: Record<string, unknown>) => adminRequest<SpeakerRead>(`/speakers/${id}`, { method: 'PATCH', body: JSON.stringify(payload) }) export const getLoyalty = () => adminRequest<LoyaltyRead>('/loyalty') export const createLevel = (payload: Record<string, unknown>) => adminRequest('/loyalty/levels', { method: 'POST', body: JSON.stringify(payload) }) export const createReward = (payload: Record<string, unknown>) => adminRequest('/loyalty/rewards', { method: 'POST', body: JSON.stringify(payload) }) export const getArticle = (eventId: string) => adminRequest<ArticleRead>(`/events/${eventId}/article`) export const saveBlocks = (eventId: string, blocks: Array<Record<string, unknown>>) => adminRequest<ArticleRead>(`/events/${eventId}/article/blocks`, { method: 'PUT', body: JSON.stringify(blocks) }) export const uploadMedia = (formData: FormData) => adminRequest('/media', { method: 'POST', body: formData })