46 lines
1.2 KiB
TypeScript
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; |