20 lines
1.5 KiB
TypeScript
20 lines
1.5 KiB
TypeScript
import api from './client';
|
|
import type { BasicSummary, CookieCheckResult, CookieItem, LoginTaskItem, PageParams, PaginatedResponse, MessageDeletedResponse, MessageResponse } from './types';
|
|
|
|
export const cookieApi = {
|
|
list: () => api.get<CookieItem[], CookieItem[]>('/cookies'),
|
|
listPaged: (params: PageParams & { include_cookie?: boolean }) =>
|
|
api.get<PaginatedResponse<CookieItem>, PaginatedResponse<CookieItem>>('/cookies', { params }),
|
|
summary: () => api.get<BasicSummary, BasicSummary>('/cookies/summary'),
|
|
get: (id: number) => api.get<CookieItem, CookieItem>(`/cookies/${id}`),
|
|
exportCsv: (format?: string) => api.get<Blob, Blob>('/cookies/export', { responseType: 'blob', params: format ? { format } : {} }),
|
|
check: (ids: number[]) =>
|
|
api.post<{ results: CookieCheckResult[] }, { results: CookieCheckResult[] }>('/cookies/check', null, { params: { ids: ids.join(',') } }),
|
|
relogin: (ids: number[]) =>
|
|
api.post<{ batch_id: string; count: number; skipped: number; success: boolean }, { batch_id: string; count: number; skipped: number; success: boolean }>('/cookies/relogin', { ids }),
|
|
loginTasks: (batchId: string) =>
|
|
api.get<LoginTaskItem[], LoginTaskItem[]>('/login/tasks', { params: { batch_id: batchId } }),
|
|
delete: (id: number) => api.delete<MessageResponse, MessageResponse>(`/cookies/${id}`),
|
|
deleteBatch: (ids: number[]) => api.delete<MessageDeletedResponse, MessageDeletedResponse>('/cookies/batch', { params: { task_ids: ids.join(',') } }),
|
|
};
|