Advertisement
Guest User

Untitled

a guest
Jan 5th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Injectable } from '@angular/core';
  2. import { HttpClient, HttpHeaders } from '@angular/common/http';
  3. import { Observable } from 'rxjs/Observable';
  4. import { of } from 'rxjs/observable/of';
  5. import { catchError, map, tap } from 'rxjs/operators';
  6.  
  7.  
  8. import { Employee } from '../models/employee';
  9. import { MessageService } from './message.service';
  10.  
  11. const httpOptions = {
  12.   headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  13. };
  14.  
  15. @Injectable()
  16. export class EmployeeService {
  17.  
  18.   private employeesUrl = '/api/employee';
  19.  
  20.   constructor(private http: HttpClient, private messageService: MessageService) {  }
  21.  
  22.  
  23.   getEmployees(): Observable<Employee[]> {
  24.     return this.http.get<Employee[]>(this.employeesUrl)
  25.       .pipe(
  26.       tap(heroes => this.log(`fetched employees`)),
  27.       catchError(this.handleError('getEmployees', []))
  28.       );
  29.   }
  30.  
  31.   addEmployee(employee: Employee): Observable<Employee> {
  32.  
  33.     return this.http.post<Employee>(this.employeesUrl, employee, httpOptions)
  34.       .pipe(tap((employee: Employee) => this.log(`added employee with id=${employee.idEmployee}`)),
  35.       catchError(this.handleError<Employee>('addEmployee'))
  36.       );
  37.  
  38.   }
  39.  
  40.   private log(message: string) {
  41.     this.messageService.add('EmployeeService ' + message);
  42.   }
  43.  
  44.   private handleError<T>(operation = 'operation', result?: T) {
  45.     return (error: any): Observable<T> => {
  46.       console.error(error);
  47.       this.log(`${operation} failed: ${error.message}`);
  48.  
  49.       return of(result as T);
  50.     };
  51.   }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement