53 lines
2.3 KiB
TypeScript
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');
|
|
}
|
|
|
|
}
|