/
SOFG1
/
hasida
Обзор
Документация
Войти
/
SOFG1
/
hasida
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/api/admin.ts
126 строк
4 KB
Eddy
initial commit
22 июл 2024, 17:14
22 июл 2024, 17:14
b43c0d0
Код
Авторство
О чём код?
import {createApi} from "@reduxjs/toolkit/dist/query/react"; import {baseQuery} from "."; import {UserPhotoType} from "./user"; import {IProfile} from "./home"; export const adminApi = createApi({ reducerPath: "adminApi", baseQuery, endpoints: (builder) => { return { adminMainData: builder.query<AdminMainDataType, void>({ query: () => { return { url: `admin/main_static/`, method: "GET", }; }, }), adminChart: builder.query<AdminChartType, number>({ query: (days) => { return { url: `admin/chart/`, params: {days}, }; }, }), adminProfile: builder.query<{ [key: string]: any }, number>({ query: (id) => { return { url: `admin/profile/${id}/`, }; }, }), adminBlockProfile: builder.mutation<{ [key: string]: any }, number>({ query: (id) => { return { url: `admin/profile/${id}/`, method: "POST", }; }, }), adminDeleteProfile: builder.mutation<{data: null}, number>({ query: (id) => { return { url: `admin/profile/${id}/`, method: "DELETE", }; }, }), adminGetComplaints: builder.query<AdminComplaintsType[], {offset: number, resolved: number}>({ query: (args) => { return { url: `admin/complaints/`, params: args, }; }, }), adminGetComplaintDialog: builder.query<AdminComplaintMessagesType[], number>({ query: (did) => { return { url: `admin/complaints/${did}/dialog/`, }; }, }), adminBlockResolve: builder.mutation<void, {id: number}>({ query: (body) => { return { url: `admin/complaints/${body.id}/block_resolve/`, method: "POST", }; }, }), adminSkipResolve: builder.mutation<void, {id: number}>({ query: (body) => { return { url: `admin/complaints/${body.id}/skip_resolve/`, method: "POST", }; }, }), }; } }); interface AdminMainDataType { dau: number; mau: number; total_users: number; total_conversations: number; numbers_of_conversation: number; } interface AdminChartType { [key: string]: [{ date?: string, open_date?: string; count: number }] } export interface AdminComplaintsType { date: string; description: string; id: number; initiator: IProfile; opponent: IProfile; reason: string; resolved: boolean; } export interface AdminComplaintMessagesType { date: string; id: number; read: boolean; sender: IProfile; text: string; } export const { useAdminMainDataQuery, useAdminChartQuery, useAdminProfileQuery, useAdminBlockProfileMutation, useAdminDeleteProfileMutation, useAdminGetComplaintsQuery, useAdminGetComplaintDialogQuery, useAdminBlockResolveMutation, useAdminSkipResolveMutation } = adminApi;