Overhaul refactor. Still things in progress

This commit is contained in:
2025-04-05 22:42:13 -04:00
parent 310d1eaad8
commit 769762dfa7
133 changed files with 119890 additions and 8784 deletions

79
ui-old/src/api/airport.ts Normal file
View File

@@ -0,0 +1,79 @@
import { Airport, AirportOrderField, Bounds, GetAirportsResponse } from './airport.types';
import { getRequest, deleteRequest, postRequest, putRequest } from '.';
interface GetAirportProps {
icao: string;
}
export async function getAirport({ icao }: GetAirportProps): Promise<Airport> {
const response = await getRequest(`airports/${icao}`);
return response?.json() || {};
}
interface GetAirportsProps {
bounds?: Bounds;
categories?: string[];
icaos?: string[];
name?: string;
order_field?: AirportOrderField;
order_by?: 'asc' | 'desc';
has_metar?: boolean;
page?: number;
limit?: number;
}
export async function getAirports({
bounds,
categories,
icaos,
name,
order_field,
order_by,
has_metar,
limit = 10,
page = 1
}: GetAirportsProps): Promise<GetAirportsResponse> {
const response = await getRequest('airports', {
bounds: bounds
? `${bounds?.northEast.lat},${bounds?.northEast.lon},${bounds?.southWest.lat},${bounds?.southWest.lon}`
: undefined,
categories: categories ?? undefined,
icaos: icaos ?? undefined,
name: name ?? undefined,
order_field: order_field ?? undefined,
order_by: order_by ?? undefined,
has_metar: has_metar ?? undefined,
limit,
page
});
return response?.json() || { data: [] };
}
export async function removeAirport({ icao }: { icao?: string }): Promise<any> {
let response
if (icao) {
response = await deleteRequest(`airports/${icao}`);
} else {
response = await deleteRequest('airports');
}
return response.status == 204;
}
export async function createAirport({ airport }: { airport: Airport }): Promise<any> {
const response = await postRequest(`airports`, airport);
return response?.json() || { data: undefined };
}
export async function updateAirport({ airport }: { airport: Airport }): Promise<any> {
const response = await putRequest(`airports/${airport.icao}`, airport);
return response?.json() || { data: undefined };
}
export async function importAirports(payload: File): Promise<boolean> {
const data = new FormData();
data.append('data', payload);
const response = await postRequest('airports/import', data, {
type: 'form'
});
return response ? response.status === 200 : false;
}