Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Injectable } from '@angular/core';
- import { HttpClient, HttpHeaders } from '@angular/common/http';
- import { Observable } from 'rxjs/Observable';
- import { of } from 'rxjs/observable/of';
- import { catchError, map, tap } from 'rxjs/operators';
- import { Employee } from '../models/employee';
- import { MessageService } from './message.service';
- const httpOptions = {
- headers: new HttpHeaders({ 'Content-Type': 'application/json' })
- };
- @Injectable()
- export class EmployeeService {
- private employeesUrl = '/api/employee';
- constructor(private http: HttpClient, private messageService: MessageService) { }
- getEmployees(): Observable<Employee[]> {
- return this.http.get<Employee[]>(this.employeesUrl)
- .pipe(
- tap(heroes => this.log(`fetched employees`)),
- catchError(this.handleError('getEmployees', []))
- );
- }
- addEmployee(employee: Employee): Observable<Employee> {
- return this.http.post<Employee>(this.employeesUrl, employee, httpOptions)
- .pipe(tap((employee: Employee) => this.log(`added employee with id=${employee.idEmployee}`)),
- catchError(this.handleError<Employee>('addEmployee'))
- );
- }
- private log(message: string) {
- this.messageService.add('EmployeeService ' + message);
- }
- private handleError<T>(operation = 'operation', result?: T) {
- return (error: any): Observable<T> => {
- console.error(error);
- this.log(`${operation} failed: ${error.message}`);
- return of(result as T);
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement