X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fsearch%2Fsearch.service.ts;h=a37c4916122bc585b1fb7220a883ae4cdab7fbaf;hb=2c24b9d3cd91a05290a0e6cd5c1b3a4414082bf2;hp=02d5f5915c18032d12ffbdcfffe7df9c0181d942;hpb=57c36b277e68b764dd34cb2e449f6e2ca3d1e9b6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/search/search.service.ts b/client/src/app/search/search.service.ts index 02d5f5915..a37c49161 100644 --- a/client/src/app/search/search.service.ts +++ b/client/src/app/search/search.service.ts @@ -8,6 +8,7 @@ import { RestExtractor, RestService } from '@app/shared' import { environment } from 'environments/environment' import { ResultList, Video } from '../../../../shared' import { Video as VideoServerModel } from '@app/shared/video/video.model' +import { AdvancedSearch } from '@app/search/advanced-search.model' export type SearchResult = { videosResult: { totalVideos: number, videos: Video[] } @@ -26,7 +27,8 @@ export class SearchService { searchVideos ( search: string, - componentPagination: ComponentPagination + componentPagination: ComponentPagination, + advancedSearch: AdvancedSearch ): Observable<{ videos: Video[], totalVideos: number }> { const url = SearchService.BASE_SEARCH_URL + 'videos' @@ -34,7 +36,21 @@ export class SearchService { let params = new HttpParams() params = this.restService.addRestGetParams(params, pagination) - params = params.append('search', search) + + if (search) params = params.append('search', search) + + const advancedSearchObject = advancedSearch.toAPIObject() + + for (const name of Object.keys(advancedSearchObject)) { + const value = advancedSearchObject[name] + if (!value) continue + + if (Array.isArray(value) && value.length !== 0) { + for (const v of value) params = params.append(name, v) + } else { + params = params.append(name, value) + } + } return this.authHttp .get>(url, { params })