Sample Delegate

import { Injectable } from '@angular/core';
import {Http, Response, Headers, RequestOptions} from "@angular/http";
import 'rxjs/Rx';
import {Observable} from "rxjs";
import {Post} from "./http/post.class";


@Injectable()
export class HttpService {

  constructor(private http: Http) { }

  private requestUrl: string = 'http://localhost:4000/posts';

  //Do all methods and observable options

  getData(id : number) : Observable<Post> {
    return this.http.get(
${this.requestUrl}/${id}
)       .map(this.mapResponse)       .catch(this.handleError)   }   handleError(error: any): Observable<any> {     console.error('An error occurred', error);     return Observable.throw(error.json() || 'Server error');   }   mapResponse(response : Response) : Post {     return response.json();   }   addData(body : Post) : Observable<Post> {     let bodyString = JSON.stringify(body);     let header = new Headers({       'Content-Type' : 'application/json'     });     let options = new RequestOptions({       headers : header     });     return this.http.post(
${this.requestUrl}
, bodyString, options)       .map(this.mapResponse)       .catch(this.handleError);   }   updateData(body : Post) : Observable<Post> {     let bodyString = JSON.stringify(body);     let header = new Headers({       'Content-Type' : 'application/json'     });     let options = new RequestOptions({       headers : header     });     return this.http.put(
${this.requestUrl}/${body.id}
, bodyString, options)       .map(this.mapResponse)       .catch(this.handleError);   }   deleteData(body : Post) : Observable<Post> {     return this.http.delete(
${this.requestUrl}/${body.id}
)       .map(this.mapResponse)       .catch(this.handleError);   } }
Comments