Files
gilze-angular/app/services/data.service.ts
T
2026-06-17 16:11:25 +02:00

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;
}
}