import type { RequestPagination, PaginatedResponse, IChannelCard, ICardInfo } from '../../types'; import type { Language } from '../../runtime'; import { ApiHelper, toHeaderLanguage } from '../../runtime'; /** Сервис для работы с API каналов */ export class ChannelsApiService { static async getChannelsByNetworkName( lang: Language, pagination: RequestPagination, slug: string, niche? = NicheHelper.getSiteDefaultNiche(), ): Promise> { return await ApiHelper.fetch( `/channels/channels-by-network-name/${slug}`, { method: 'GET', headers: { 'X-Niche': niche, 'X-Language': toHeaderLanguage(lang), 'X-Cache-Time': 259200, 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, params: { ...pagination, }, }, useRuntimeConfig(), ); } static async getChannelsByModel( lang: Language, pagination: RequestPagination, slug: string, niche? = NicheHelper.getSiteDefaultNiche(), ): Promise> { return await ApiHelper.fetch( `/channels/channels-by-model/${slug}`, { method: 'GET', headers: { 'X-Niche': niche, 'X-Language': toHeaderLanguage(lang), 'X-Cache-Time': 259200, 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, params: { ...pagination, }, }, useRuntimeConfig(), ); } static async getChannelsByName( lang: Language, slug: string, niche? = NicheHelper.getSiteDefaultNiche(), ): Promise { return await ApiHelper.fetch( `/channels/channels-by-name/${slug}`, { method: 'GET', headers: { 'X-Niche': niche, 'X-Language': toHeaderLanguage(lang), 'X-Cache-Time': 259200, 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, }, useRuntimeConfig(), ); } static async getChannels( lang: Language, pagination: RequestPagination, order: string, niche? = NicheHelper.getSiteDefaultNiche(), ): Promise> { return await ApiHelper.fetch( '/channels/channels', { method: 'GET', headers: { 'X-Niche': niche, 'X-Language': toHeaderLanguage(lang), 'X-Cache-Time': 259200, 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', }, params: { ...pagination, order, }, }, useRuntimeConfig(), ); } }