import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import { ResultInfo } from './results/resultInfo'; @Injectable() export class CommunityService { private sizeOfDescription: number = 135; constructor(private http:Http) { } getNumberOfPublications() { return this.http.get('http://beta.services.openaire.eu:8480/search/rest/v2/api/publications/count?format=json&fq=communityid=egi') .map(res => res.json()).map(res => res.total).do(res => {console.log(res)}); } getNumberOfResearchData() { return this.http.get('http://beta.services.openaire.eu:8480/search/rest/v2/api/datasets/count?format=json&fq=communityid=egi') .map(res => res.json()).map(res => res.total).do(res => {console.log(res)}); } getNumberOfSoftware() { return this.http.get('http://beta.services.openaire.eu:8480/search/rest/v2/api/software/count?format=json&fq=communityid=egi') .map(res => res.json()).map(res => res.total).do(res => {console.log(res)}); } getResults(url: string) { return this.http.get(url).map(res => res.json()).map(res => this.parseResults(res['results'])); } parseResults(data: any): ResultInfo[] { let results: ResultInfo[] = []; let length = Array.isArray(data) ? data.length :1; for (let i=0; i(); } let authors = resData['creator']; let length = Array.isArray(authors) ? authors.length : 1; for(let i=0; i this.sizeOfDescription) { result.description = result.description.substring(0, this.sizeOfDescription) + "..."; } results.push(result); } return results; } }