Newer
Older
import { Injectable } from '@angular/core';
import { Machine } from './machine';
import { environment } from '../environments/environment';
import { catchError, map, tap } from 'rxjs/operators';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { FormBuilder, FormGroup } from '@angular/forms';
@Injectable()
export class MachinesService {
private machinesURL = environment.webserviceUrl+"/api/machines";
this.httpOptions.headers =
this.httpOptions.headers.set('Authorization', this.authService.getToken());
const formData = new FormData()
formData.append('serial_number', machine.serial_number);
formData.append('room', machine.room);
formData.append('date_last_maintenance',
machine.date_last_maintenance.month + '-' +
machine.date_last_maintenance.day + '-' +
machine.date_last_maintenance.year
);
formData.append('date_next_maintenance',
machine.date_next_maintenance.month + '-' +
machine.date_next_maintenance.day + '-' +
machine.date_next_maintenance.year
);
formData.append('status', machine.Status);
formData.append('address', machine.address);
formData.append('address_number', machine.address_number);
formData.append('district', machine.district);
formData.append('city', machine.city);
formData.append('state', machine.state);
if ((op == "post") || (machine.image.size != 0 )) { //if is post or image exists
console.log("sending image");
formData.append('file', machine.image, machine.image.name);
}
return this.http.get(this.machinesURL)
.pipe(
tap(_ => console.log('fetched machines')),
catchError(this.handleError<Observable<Object>>("getMachines")));
addMachine(machine: Machine): Observable<Machine> {
if (this.authService.loggedIn()) { this.updateHttpHeader() }
this.httpOptions
).pipe(
tap(_ => console.log("added machine with serial number "+ machine.serial_number)),
catchError(this.handleError<Machine>("addMachine"))
);
}
if (this.authService.loggedIn()) { this.updateHttpHeader() }
return this.http.put(this.machinesURL+"/"+machine.id,
tap(_ => console.log("updated machine with serial number " + machine.serial_number)),
catchError(this.handleError<Machine>("updateMachine"))
);
}
deleteMachine(id) {
if (this.authService.loggedIn()) { this.updateHttpHeader() }
return this.http.delete(this.machinesURL+"/"+id,
this.httpOptions).pipe(
tap(_ => console.log("removed machine with serial number " + id)),
catchError(this.handleError<Machine>("removeMachine"))
);
}
private handleError<T> (operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
Dante Aléo
committed
console.error(error);
return Observable.of(result as T);
}
constructor(private http: HttpClient,
private authService: AuthService) { }