Files
tgex-frontend/lib/api/external-channels.ts
2025-11-19 12:56:04 +03:00

53 lines
1.5 KiB
TypeScript

// ============================================================================
// External Channels API
// ============================================================================
import { api } from "./client";
import type {
ExternalChannel,
ExternalChannelsListResponse,
ExternalChannelCreateRequest,
ExternalChannelUpdateRequest,
ExternalChannelLinksUpdateRequest,
SuccessResponse,
} from "@/lib/types/api";
export const externalChannelsApi = {
/**
* Get list of external channels for target channel
* GET /api/v1/external_channels/target/{target_channel_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),
/**
* Update external channel
* PATCH /api/v1/external_channels/{channel_id}
*/
update: (id: string, data: ExternalChannelUpdateRequest) =>
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}`),
};