db-04-flights/src/routes/airport.router.ts
Jonas Hinterdorfer d905f7c8ae implemented task 4
2025-03-16 13:33:07 +01:00

46 lines
1.2 KiB
TypeScript

import express, {Request, Response} from "express";
import {AirportService} from "../services/airport.service";
import {StatusCodes} from "http-status-codes";
import {AirportModel} from "../models/airport.model";
const router = express.Router()
router.get('/', async (req : Request<null, null,null, {icaoCodes : boolean | undefined}>, res: Response) : Promise<void> => {
const icaoCode = req.query.icaoCodes;
if(icaoCode === undefined || !icaoCode)
{
const airports = await AirportService.getAll();
res.status(StatusCodes.OK).json(airports);
return;
}
else {
const codes = await AirportService.getIcaoCodes();
res.status(StatusCodes.OK).json(codes);
return ;
}
});
router.get('/:icaoCode', async (req : Request<{icaoCode : string}>, res: Response) : Promise<void> => {
const icaoCode: string = req.params.icaoCode;
if(icaoCode === undefined || icaoCode.length != 4){
res.sendStatus(StatusCodes.BAD_REQUEST);
return ;
}
const airport : AirportModel | null = await AirportService.getOne(icaoCode);
if(airport === null)
{
res.sendStatus(StatusCodes.NO_CONTENT);
}
res.status(200).json(airport);
});
export default router;