improvement for the backend api

This commit is contained in:
ivannoskov
2025-11-19 12:56:04 +03:00
parent b0a9934220
commit d4672ea32b
40 changed files with 2383 additions and 3313 deletions

View File

@@ -5,57 +5,48 @@
import { api } from "./client";
import type {
ExternalChannel,
ExternalChannelDetail,
ExternalChannelQueryParams,
ExternalChannelsListResponse,
ExternalChannelCreateRequest,
ExternalChannelUpdateRequest,
ExternalChannelImportResponse,
ListResponse,
ExternalChannelLinksUpdateRequest,
SuccessResponse,
} from "@/lib/types/api";
export const externalChannelsApi = {
/**
* Get list of external channels
* Get list of external channels for target channel
* GET /api/v1/external_channels/target/{target_channel_id}
*/
list: (params?: ExternalChannelQueryParams) =>
api.get<ListResponse<ExternalChannel>>("/external-channels", { params }),
/**
* Get external channel details
*/
get: (id: string) =>
api.get<ExternalChannelDetail>(`/external-channels/${id}`),
list: (targetChannelId: string) =>
api.get<ExternalChannelsListResponse>(
`/external_channels/target/${targetChannelId}`
),
/**
* Create new external channel
* POST /api/v1/external_channels
*/
create: (data: ExternalChannelCreateRequest) =>
api.post<ExternalChannel>("/external-channels", data),
api.post<ExternalChannel>("/external_channels", data),
/**
* Update external channel
* PATCH /api/v1/external_channels/{channel_id}
*/
update: (id: string, data: ExternalChannelUpdateRequest) =>
api.patch<ExternalChannel>(`/external-channels/${id}`, data),
api.patch<ExternalChannel>(`/external_channels/${id}`, data),
/**
* Update external channel links
* PATCH /api/v1/external_channels/{channel_id}/links
*/
updateLinks: (id: string, data: ExternalChannelLinksUpdateRequest) =>
api.patch<ExternalChannel>(`/external_channels/${id}/links`, data),
/**
* Delete external channel
* DELETE /api/v1/external_channels/{channel_id}
*/
delete: (id: string) =>
api.delete<SuccessResponse>(`/external-channels/${id}`),
/**
* Import external channels from Excel file
*/
import: (file: File, targetChannelId: string) => {
const formData = new FormData();
formData.append("file", file);
formData.append("target_channel_id", targetChannelId);
return api.upload<ExternalChannelImportResponse>(
"/external-channels/import",
formData
);
},
api.delete<SuccessResponse>(`/external_channels/${id}`),
};