Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 1x 3x 2x 1x 1x 1x 1x | import { Injectable } from '@angular/core';
import { map, Observable, of } from 'rxjs';
import { ApiService } from 'src/app/core/external/api/api.service';
import { GithubSearchRequest } from '../../domain/entities/github-search-request';
import { GithubSearchResult } from '../../domain/entities/github-search-result';
import { GithubSearchDatasource } from '../../infra/datasources/github-search-datasource.interface';
@Injectable()
export class GithubSearchDatasourceService implements GithubSearchDatasource {
constructor(private apiService: ApiService) {}
public fetchSearchResults(
request: GithubSearchRequest
): Observable<GithubSearchResult> {
if (!request.query) {
return of(GithubSearchResult.empty());
}
const params = {
q: request.query,
page: request.page + 1,
per_page: request.perPage,
};
return this.apiService
.get<any>('search/users', params)
.pipe(map((response) => GithubSearchResult.fromApiResponse(response)));
}
}
|