132 lines
3.9 KiB
TypeScript
132 lines
3.9 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import { Observable } from 'rxjs/Rx';
|
|
import 'rxjs/add/operator/map'
|
|
import { Http, Response, Headers } from '@angular/http';
|
|
|
|
import { Flight } from './../classes/flight.class';
|
|
import { User } from './../classes/user.class';
|
|
import { Reader } from './../classes/reader.class';
|
|
import { Plane } from './../classes/plane.class';
|
|
|
|
@Injectable()
|
|
export class DataService {
|
|
|
|
url:string = "";
|
|
|
|
constructor(private http : Http){
|
|
}
|
|
|
|
load() : Promise<Object>
|
|
{
|
|
return new Promise((resolve, reject) => {
|
|
|
|
if(this.url != "")
|
|
{
|
|
resolve();
|
|
}
|
|
else
|
|
{
|
|
this.http.get('/app/config/api.json').subscribe((res)=>{
|
|
var data = res.json();
|
|
this.url = data.protocol + data.hostname + ":" + data.port + "/" + data.api;
|
|
console.log(this.url);
|
|
resolve();
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
//FLIGHTS
|
|
|
|
flight(id:number): Observable<any> {
|
|
let flightdata = this.http.get(`${this.url}/flights/${id}`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return flightdata;
|
|
}
|
|
|
|
flights(): Observable<any> {
|
|
let flightdata = this.http.get(`${this.url}/flights`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return flightdata;
|
|
}
|
|
|
|
endFlight(id:number): Observable<any> {
|
|
let flight = this.http.put(`${this.url}/flights/${id}/stop`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return flight
|
|
}
|
|
|
|
|
|
//USERS
|
|
|
|
user(id:number): Observable<any> {
|
|
let usersdata = this.http.get(`${this.url}/users/${id}`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return usersdata;
|
|
}
|
|
|
|
users(): Observable<any> {
|
|
let usersdata = this.http.get(`${this.url}/users`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return usersdata;
|
|
}
|
|
|
|
postUser(user:User): Observable<User>{
|
|
let userData = this.http.post(`${this.url}/users`, {name:user.name, cardId: user.card, role:user.role}, {headers: this.getHeaders()}).map(r => r.json());
|
|
return userData;
|
|
}
|
|
|
|
editUser(user:User): Observable<User>{
|
|
let userData = this.http.put(`${this.url}/users/${user.id}`, {name:user.name, cardId: user.card, role:user.role}, {headers: this.getHeaders()}).map(r => r.json());
|
|
return userData;
|
|
}
|
|
|
|
|
|
//READERS
|
|
|
|
reader(id:number): Observable<any> {
|
|
let readerData = this.http.get(`${this.url}/readers/${id}`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return readerData;
|
|
}
|
|
|
|
readers(): Observable<any> {
|
|
let readersData = this.http.get(`${this.url}/readers`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return readersData;
|
|
}
|
|
|
|
editReader(reader:Reader): Observable<Reader>{
|
|
let readerData = this.http.put(`${this.url}/readers/${reader.id}`, {readerId:reader.reader_id, planeId:reader.plane.id}, {headers: this.getHeaders()}).map(r => r.json());
|
|
return readerData;
|
|
}
|
|
|
|
|
|
//PLANES
|
|
|
|
plane(id:number): Observable<any> {
|
|
let planeData = this.http.get(`${this.url}/planes/${id}`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return planeData;
|
|
}
|
|
|
|
planes(): Observable<any> {
|
|
let planesData = this.http.get(`${this.url}/planes`, {headers: this.getHeaders()}).map(r => r.json());
|
|
return planesData;
|
|
}
|
|
|
|
postPlane(plane:Plane): Observable<Plane>{
|
|
let userData = this.http.post(`${this.url}/planes`, {name:plane.name, registration: plane.registration, model:plane.model, comment:plane.comment}, {headers: this.getHeaders()}).map(r => r.json());
|
|
return userData;
|
|
}
|
|
|
|
editPlane(plane:Plane): Observable<Plane>{
|
|
let planeData = this.http.put(`${this.url}/planes/${plane.id}`, {name:plane.name, registration: plane.registration, model:plane.model, comment:plane.comment}, {headers: this.getHeaders()}).map(r => r.json());
|
|
return planeData;
|
|
}
|
|
|
|
|
|
//OTHER
|
|
|
|
private getHeaders(){
|
|
let headers = new Headers();
|
|
headers.append('Accept', 'application/json');
|
|
return headers;
|
|
}
|
|
}
|