1- import { EventEmitter , Injectable } from '@angular/core' ;
1+ import { Injectable } from '@angular/core' ;
22import { HttpClient , HttpHeaders } from '@angular/common/http' ;
33
44import { AppConfig } from '../../config/app.config' ;
@@ -10,14 +10,11 @@ import {TranslateService} from '@ngx-translate/core';
1010
1111@Injectable ( )
1212export class HeroService {
13- request$ : EventEmitter < any > ;
14-
1513 private headers : HttpHeaders ;
1614 private heroesUrl : string ;
1715 private translations : any ;
1816
1917 private handleError ( error : any ) {
20- this . request$ . emit ( 'finished' ) ;
2118 if ( error instanceof Response ) {
2219 return Observable . throw ( error . json ( ) [ 'error' ] || 'backend server error' ) ;
2320 }
@@ -27,8 +24,6 @@ export class HeroService {
2724 constructor ( private http : HttpClient ,
2825 private translateService : TranslateService ,
2926 private snackBar : MatSnackBar ) {
30- this . request$ = new EventEmitter ( ) ;
31-
3227 this . heroesUrl = AppConfig . endpoints . heroes ;
3328 this . headers = new HttpHeaders ( { 'Content-Type' : 'application/json' } ) ;
3429
@@ -40,34 +35,28 @@ export class HeroService {
4035 }
4136
4237 getAllHeroes ( ) : Observable < Hero [ ] > {
43- this . request$ . emit ( 'starting' ) ;
4438 return this . http . get ( this . heroesUrl )
4539 . map ( response => {
46- this . request$ . emit ( 'finished' ) ;
4740 return response ;
4841 } )
4942 . catch ( error => this . handleError ( error ) ) ;
5043 }
5144
5245 getHeroById ( heroId : string ) : Observable < Hero > {
53- this . request$ . emit ( 'starting' ) ;
5446 return this . http . get ( this . heroesUrl + '/' + heroId )
5547 . map ( response => {
56- this . request$ . emit ( 'finished' ) ;
5748 return response ;
5849 } )
5950 . catch ( error => this . handleError ( error ) ) ;
6051 }
6152
6253 createHero ( hero : any ) : Observable < Hero > {
63- this . request$ . emit ( 'starting' ) ;
6454 return this . http
6555 . post ( this . heroesUrl , JSON . stringify ( {
6656 name : hero . name ,
6757 alterEgo : hero . alterEgo
6858 } ) , { headers : this . headers } )
6959 . map ( response => {
70- this . request$ . emit ( 'finished' ) ;
7160 this . showSnackBar ( 'heroCreated' ) ;
7261 return response ;
7362 } )
@@ -76,12 +65,10 @@ export class HeroService {
7665
7766 like ( hero : Hero ) {
7867 if ( this . checkIfUserCanVote ( ) ) {
79- this . request$ . emit ( 'starting' ) ;
8068 const url = `${ this . heroesUrl } /${ hero . id } /like` ;
8169 return this . http
8270 . post ( url , { } , { headers : this . headers } )
8371 . map ( ( response ) => {
84- this . request$ . emit ( 'finished' ) ;
8572 localStorage . setItem ( 'votes' , '' + ( Number ( localStorage . getItem ( 'votes' ) ) + 1 ) ) ;
8673 hero . likes += 1 ;
8774 this . showSnackBar ( 'saved' ) ;
@@ -99,11 +86,9 @@ export class HeroService {
9986 }
10087
10188 deleteHeroById ( id : any ) : Observable < Array < Hero > > {
102- this . request$ . emit ( 'starting' ) ;
10389 const url = `${ this . heroesUrl } /${ id } ` ;
10490 return this . http . delete ( url , { headers : this . headers } )
10591 . map ( ( response ) => {
106- this . request$ . emit ( 'finished' ) ;
10792 this . showSnackBar ( 'heroRemoved' ) ;
10893 return response ;
10994 } )
0 commit comments