import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

import { environment } from '../../../environments/environment';
import { DatasetCount } from './model';


@Injectable()
export class SearchMultipleService {
    API_PATH: string = environment.apiUrl;
    instanceName: string = environment.instanceName;

    constructor(private http: HttpClient) { }

    getCount(dname: string, query: string): Observable<DatasetCount> {
        return this.http.get<{ nb: number }[]>(this.API_PATH + '/search/' + query).pipe(
            map(res => {
                return { dname: dname, count: res[0].nb };
            })
        );
    }

    retrieveData(dname: string, query: string): Observable<{ datasetName: string, data: any[] }> {
        return this.http.get<any[]>(this.API_PATH + '/search/' + query).pipe(
            map(res => {
                return { datasetName: dname, data: res };
            })
        );
    }
}