import axios from 'axios' import { ResultList, VideoPlaylistsSearchQuery } from '../../../PeerTube/shared/models' import { VideoChannelsSearchQuery } from '../../../PeerTube/shared/models/search/video-channels-search-query.model' import { VideosSearchQuery } from '../../../PeerTube/shared/models/search/videos-search-query.model' import { EnhancedVideoChannel } from '../../../server/types/channel.model' import { EnhancedPlaylist } from '../../../server/types/playlist.model' import { EnhancedVideo } from '../../../server/types/video.model' import { buildApiUrl } from './utils' const baseVideosPath = '/api/v1/search/videos' const baseVideoChannelsPath = '/api/v1/search/video-channels' const baseVideoPlaylistsPath = '/api/v1/search/video-playlists' function searchVideos (options: VideosSearchQuery) { const axiosOptions = { params: { ...options, search: options.search || undefined } } return axios.get>(buildApiUrl(baseVideosPath), axiosOptions) .then(res => res.data) } function searchVideoChannels (options: VideoChannelsSearchQuery) { const axiosOptions = { params: { ...options, search: options.search || undefined } } return axios.get>(buildApiUrl(baseVideoChannelsPath), axiosOptions) .then(res => res.data) } function searchVideoPlaylists (options: VideoPlaylistsSearchQuery) { const axiosOptions = { params: { ...options, search: options.search || undefined } } return axios.get>(buildApiUrl(baseVideoPlaylistsPath), axiosOptions) .then(res => res.data) } export { searchVideos, searchVideoChannels, searchVideoPlaylists }