explore-services/portal-2/src/app/services/searchCrossref.service.ts

53 lines
2.3 KiB
TypeScript

import {Injectable} from '@angular/core';
// import {Http, Response, Headers} from '@angular/http';
import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
// import {Publication} from '../utils/entities/publication';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
@Injectable()
export class SearchCrossrefService {
constructor( private http: Http) {}
searchCrossrefResults (term: string, size : number, page : number):any {
let url = OpenaireProperties.getSearchCrossrefAPIURL()+'?query='+term+'&rows='+size+'&offset='+(size*(page-1));
////"&rows=".$size."&offset=".($page-1)*$size
return this.http.get( url)
.map(request => <any> request.json().message)
.do(items => console.log("Crossref Results: total results = "+items['total-results']+" keyword = "+term))
//.catch(this.handleError);
}
searchCrossrefByDOI(doi: string):any {
let url = OpenaireProperties.getSearchCrossrefAPIURL()+'?filter=doi:'+doi;
////"&rows=".$size."&offset=".($page-1)*$size
return this.http.get( url)
.map(request => <any> request.json().message)
.do(items => console.log("Crossref Results: total results = "+items['total-results']+" for doi = "+doi))
//.catch(this.handleError);
}
searchCrossrefByMultipleDOIs(dois: string[]):any {
let url = OpenaireProperties.getSearchCrossrefAPIURL()+'?filter=doi:';
for(var i=0; i<dois.length; i++){
url=url+(url.length==0?'':',')+'doi:'+dois[i];
}
url = OpenaireProperties.getSearchCrossrefAPIURL()+'?filter='+url;
////"&rows=".$size."&offset=".($page-1)*$size
return this.http.get( url)
.map(request => <any> request.json().message)
.do(items => console.log("Crossref Results: total results = "+items['total-results']))
//.catch(this.handleError);
}
private handleError (error: Response) {
// in a real world app, we may send the error to some remote logging infrastructure
// instead of just logging it to the console
console.error(error);
return Observable.throw(error || 'Server error');
}
}