Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Injectable } from '@angular/core';
- import { Http, Response, Headers, RequestOptions } from '@angular/http';
- import { environment } from '../../../environments/environment';
- import { Observable } from 'rxjs/Rx';
- import { contentHeaders } from '../headers';
- import 'rxjs/add/operator/map';
- import 'rxjs/add/operator/catch';
- @Injectable()
- export abstract class RestService<T> {
- protected model;
- constructor(public authHttp: Http) {
- }
- get url() : string {
- return environment.api + this.model;
- }
- private handleError(error: any) {
- return error.json().message || error.json()[0].message || 'Server error';
- }
- index(): Observable<T[]> {
- return this.authHttp.get(this.url)
- .map((res: Response) => res.json())
- .catch((error: any) => Observable.throw(this.handleError(error)));
- }
- view(id: number): Observable<T> {
- return this.authHttp.get(`${this.url}/${id}`)
- .map((res: Response) => res.json())
- .catch((error: any) => Observable.throw(this.handleError(error)));
- }
- create(body: Object): Observable<T> {
- let options = new RequestOptions({ headers: contentHeaders });
- return this.authHttp.post(this.url, body, options)
- .map((res: Response) => res.json())
- .catch((error: any) => Observable.throw(this.handleError(error)));
- }
- update(body: Object): Observable<T> {
- let options = new RequestOptions({ headers: contentHeaders });
- return this.authHttp.put(`${this.url}/${body['id']}`, body, options)
- .map((res: Response) => res.json())
- .catch((error: any) => Observable.throw(this.handleError(error)));
- }
- delete(id: number): Observable<void> {
- return this.authHttp.delete(`${this.url}/${id}`)
- .map((res: Response) => res.json())
- .catch((error: any) => Observable.throw(this.handleError(error)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement