@@ -6,80 +6,89 @@ import { Http, Response, Headers } from 'angular2/http';
66
77@Injectable ( )
88export class HeroService {
9-
9+
1010 private _heroesUrl = 'app/heroes' ; // URL to web api
11-
12- constructor ( private _http :Http ) {
13- }
14-
15- //#docregion get-heroes
16- getHeroes ( ) {
11+
12+ constructor ( private _http : Http ) { }
13+
14+ // #docregion get-heroes
15+ getHeroes ( ) : Promise < Hero [ ] > {
1716 return this . _http
17+ // #docregion to-promise
1818 . get ( this . _heroesUrl ) . toPromise ( )
19- . then ( ( res :Response ) => res . json ( ) . data )
19+ // #enddocregion to-promise
20+ // #docregion to-data
21+ . then ( response => response . json ( ) . data )
22+ // #enddocregion to-data
23+ // #docregion catch
2024 . catch ( this . _handleError ) ;
25+ // #enddocregion catch
2126 }
22- //#enddocregion get-heroes
23-
27+ // #enddocregion get-heroes
28+
2429 getHero ( id : number ) {
2530 return this . getHeroes ( )
26- . then ( heroes => heroes . filter ( ( hero : Hero ) => hero . id === id ) [ 0 ] ) ;
31+ . then ( heroes => heroes . filter ( hero => hero . id === id ) [ 0 ] ) ;
2732 }
28-
29- //#docregion save
30- save ( hero :Hero ) {
31- if ( hero . id ) {
33+
34+ // #docregion save
35+ save ( hero : Hero ) : Promise < Hero > {
36+ if ( hero . id ) {
3237 return this . _put ( hero ) ;
3338 }
3439 return this . _post ( hero ) ;
3540 }
36- //#enddocregion save
37-
38- //#docregion delete-hero
39- delete ( hero :Hero ) {
41+ // #enddocregion save
42+
43+ // #docregion delete-hero
44+ delete ( hero : Hero ) {
4045 let headers = new Headers ( ) ;
4146 headers . append ( 'Content-Type' , 'application/json' ) ;
42-
47+
4348 let url = `${ this . _heroesUrl } /${ hero . id } ` ;
44-
49+
4550 return this . _http
46- . delete ( url , headers )
51+ . delete ( url , headers )
4752 . toPromise ( )
4853 . catch ( this . _handleError ) ;
4954 }
50- //#enddocregion delete-hero
51-
52- //#docregion post-hero
53- private _post ( hero :Hero ) {
54- let headers = new Headers ( ) ;
55- headers . append ( 'Content-Type' , 'application/json' ) ;
56-
55+ // #enddocregion delete-hero
56+
57+ // #docregion post-hero
58+ // Add new Hero
59+ private _post ( hero : Hero ) : Promise < Hero > {
60+ let headers = new Headers ( {
61+ 'Content-Type' : 'application/json' } ) ;
62+
5763 return this . _http
58- . post ( this . _heroesUrl , JSON . stringify ( hero ) , { headers :headers } )
64+ . post ( this . _heroesUrl , JSON . stringify ( hero ) , { headers : headers } )
5965 . toPromise ( )
66+ . then ( res => res . json ( ) . data )
6067 . catch ( this . _handleError ) ;
6168 }
62- //#enddocregion post-hero
63-
64- //#docregion put-hero
65- private _put ( hero :Hero ) {
69+ // #enddocregion post-hero
70+
71+ // #docregion put-hero
72+ // Update existing Hero
73+ private _put ( hero : Hero ) {
6674 let headers = new Headers ( ) ;
6775 headers . append ( 'Content-Type' , 'application/json' ) ;
68-
76+
6977 let url = `${ this . _heroesUrl } /${ hero . id } ` ;
70-
78+
7179 return this . _http
72- . put ( url , JSON . stringify ( hero ) , { headers :headers } )
80+ . put ( url , JSON . stringify ( hero ) , { headers : headers } )
7381 . toPromise ( )
82+ . then ( ( ) => hero )
7483 . catch ( this . _handleError ) ;
7584 }
76- //#enddocregion put-hero
77-
78- //#docregion error-handler
79- private _handleError ( error :any ) {
80- console . log ( 'An error occurred:' + error ) ;
81- return Promise . reject ( error ) ;
85+ // #enddocregion put-hero
86+
87+ // #docregion error-handler
88+ private _handleError ( error : any ) {
89+ console . error ( 'An error occurred' , error ) ;
90+ return Promise . reject ( error . message || error ) ;
8291 }
83- //#enddocregion error-handler
92+ // #enddocregion error-handler
8493}
85- // #enddocregion
94+ // #enddocregion
0 commit comments