import { Injectable } from '@angular/core'; import { HttpClient, HttpResponse, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { SERVER_API_URL } from 'app/app.constants'; import { SearchResultsDTO } from 'app/shared/model/search/search-results-dto.model'; import { SearchInput } from 'app/shared/model/search-input.model'; type EntityResponseTypeAutoComplete = HttpResponse<Array<string>>; @Injectable({ providedIn: 'root' }) export class SearchService { public resourceSearchUrlPageDetails = SERVER_API_URL + 'api/search/page-details'; public resourceKeywordsAutoCompleteDetails = SERVER_API_URL + 'api/search/keywordsAutoComplete'; constructor(protected http: HttpClient) {} searchPageDetails(searchInput: SearchInput): Observable<SearchResultsDTO> { return this.http .post<SearchResultsDTO>(this.resourceSearchUrlPageDetails, searchInput); } getKeywordsAutoComplete(prefix: string): Observable<Array<string>> { const options: HttpParams = new HttpParams(); options.append("keyWordPrefix", prefix); return this.http .get<Array<string>>(this.resourceKeywordsAutoCompleteDetails, {params: new HttpParams().set('keyWordPrefix', prefix) } ); } }