-
Notifications
You must be signed in to change notification settings - Fork 0
/
iatadb.service.ts
69 lines (57 loc) · 2.63 KB
/
iatadb.service.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import { Injectable } from '@angular/core';
import { Flughafenergebnis } from './flughafenergebnis';
import { Fluggesellschaftergebnis } from './fluggesellschaftergebnis';
/**
* Dieser Service kapselt die Logik für die eigentliche Abfrage der IATA-Codes
* für Flughäfen und Fluggesellschaften.
* Es sind einige wenige Flughafen- und Fluggesellschaften hardcodiert.
*
* Siehe auch die folgende URL für offizielle DB der IATA:
* https://www.iata.org/publications/Pages/code-search.aspx
*/
@Injectable({
providedIn: 'root'
})
export class IatadbService {
/**
* Nach Flughafen anhand von dreistelligem Code suchen.
* <br><br>
*
* Referenzen:
* * https://de.wikipedia.org/wiki/IATA-Flughafencode
* * https://de.wikipedia.org/wiki/Liste_der_IATA-Flughafen-Codes
*
* @param code Dreistelliger Flughafencode, wird intern auf Großbuchstaben normiert.
*
* @returns Ergebnisobjekt mit Attribut `gefunden=true` genau dann wenn ein Flughafen mit
* `code` gefunden wurde.
*/
public sucheFlughafen( code: string ): Flughafenergebnis {
switch ( code.trim().toUpperCase() ) {
case "FKB": return new Flughafenergebnis( true, "Karlsruhe/Baden-Baden", "Deutschland" );
case "FRA": return new Flughafenergebnis( true, "Frankfurt a.M." , "Deutschland" );
case "LHR": return new Flughafenergebnis( true, "London Heathrow" , "GB" );
case "PEK": return new Flughafenergebnis( true, "Peking" , "VR China" );
case "STR": return new Flughafenergebnis( true, "Stuttgart" , "Deutschland" );
case "MHG": return new Flughafenergebnis( true, "Mannheim" , "Deutschland" );
default: return new Flughafenergebnis( false, "", "" );
}
}
/**
* Nach Fluggesellschaft (Airline) anhand von zweistelligem Code suchen.
*
* @param code Zweistelliger Code für Airline; wird intern auf Großbuchstaben normiert.
*
* @return Ergebnisobjekt mit Attribut `gefunden=true` genau dann wenn eine Airline mit `code`
* gefunden wurde.
*/
public sucheFluggesellschaft( code: string ): Fluggesellschaftergebnis {
switch ( code.trim().toUpperCase() ) {
case "AA": return new Fluggesellschaftergebnis( true, "American Airlines", "USA" );
case "BA": return new Fluggesellschaftergebnis( true, "British Airways" , "GB" );
case "LH": return new Fluggesellschaftergebnis( true, "Lufthansa" , "Deutschland" );
case "LO": return new Fluggesellschaftergebnis( true, "LOT" , "Polen" );
default: return new Fluggesellschaftergebnis( false, "", "" );
}
}
}