X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Fhero.service.ts;h=d44f22ff21f99ce70f1b52c72b04c5330b2f8911;hb=f48ad6f3e3fa28778b2648a505706cc95ee51978;hp=a59d76b34df6adf37ced337d7cc2c32dbfb855eb;hpb=88fd95b95db3ee160af3eb441daaf69a6419c2b7;p=examples%2Fangular-tour-of-heroes diff --git a/src/app/hero.service.ts b/src/app/hero.service.ts index a59d76b..d44f22f 100644 --- a/src/app/hero.service.ts +++ b/src/app/hero.service.ts @@ -1,7 +1,9 @@ import { Injectable } from '@angular/core'; -import { Observable, of } from 'rxjs'; +import { Observable, of, EMPTY } from 'rxjs'; import { Hero } from './hero'; import { HEROES } from './mock-heroes'; +import { HttpClient } from '@angular/common/http'; +import { MessageService } from './message.service'; @Injectable({ @@ -9,9 +11,29 @@ import { HEROES } from './mock-heroes'; }) export class HeroService { - constructor() { } + private heroesUrl = 'api/heroes'; // URL to web api - getHeroes() : Observable { - return of(HEROES); + constructor( + private http: HttpClient, + private messageService: MessageService) { } + + getHeroes(): Observable { + this.log('fetching heroes...'); + return this.http.get(this.heroesUrl); + } + + getHero(id: number): Observable { + this.log(`requested hero id=${id}`); + const found: Hero | undefined = HEROES.find(hero => hero.id === id); + if (found === undefined) { + return EMPTY; + } else { + return of(found); + } + } + + /** Log a HeroService message with the MessageService */ + private log(message: string) { + this.messageService.add(`HeroService: ${message}`); } }