62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
// ============================================================================
|
|
// External Channels API
|
|
// ============================================================================
|
|
|
|
import { api } from "./client";
|
|
import type {
|
|
ExternalChannel,
|
|
ExternalChannelDetail,
|
|
ExternalChannelQueryParams,
|
|
ExternalChannelCreateRequest,
|
|
ExternalChannelUpdateRequest,
|
|
ExternalChannelImportResponse,
|
|
ListResponse,
|
|
SuccessResponse,
|
|
} from "@/lib/types/api";
|
|
|
|
export const externalChannelsApi = {
|
|
/**
|
|
* Get list of external channels
|
|
*/
|
|
list: (params?: ExternalChannelQueryParams) =>
|
|
api.get<ListResponse<ExternalChannel>>("/external-channels", { params }),
|
|
|
|
/**
|
|
* Get external channel details
|
|
*/
|
|
get: (id: string) =>
|
|
api.get<ExternalChannelDetail>(`/external-channels/${id}`),
|
|
|
|
/**
|
|
* Create new external channel
|
|
*/
|
|
create: (data: ExternalChannelCreateRequest) =>
|
|
api.post<ExternalChannel>("/external-channels", data),
|
|
|
|
/**
|
|
* Update external channel
|
|
*/
|
|
update: (id: string, data: ExternalChannelUpdateRequest) =>
|
|
api.patch<ExternalChannel>(`/external-channels/${id}`, data),
|
|
|
|
/**
|
|
* Delete external channel
|
|
*/
|
|
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
|
|
);
|
|
},
|
|
};
|