From f3448723cb9e1f5c1aba2a7aa156c642cbd362ca Mon Sep 17 00:00:00 2001 From: Emmy D'Anello Date: Fri, 11 Aug 2023 19:48:50 +0200 Subject: [PATCH] Update API search --- server/index.js | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/server/index.js b/server/index.js index afe6b67..b4a53c9 100644 --- a/server/index.js +++ b/server/index.js @@ -19,12 +19,21 @@ app.get("/api", (req, res) => { }) app.get("/api/airports", (req, res) => { - Airport.findAll().then(airports => res.json(airports)) + const search = req.query.search.toLowerCase() + let where = {} + if (search) { + let or_array = [] + for (let col_name of ['name', 'icao_code', 'iata_code']) + or_array.push(db.sequelize.where(db.sequelize.fn('lower', db.sequelize.col(col_name)), + {[db.Sequelize.Op.like]: `%${search}%`})) + where = {[db.Sequelize.Op.or]: or_array} + } + Airport.findAll({where: where}).then(airports => res.json(airports)) }) -app.get("/api/airport/:id", (req, res) => { - const id = req.params.id - Airport.findByPk(id).then(data => { +app.get("/api/airport/:icao_code", (req, res) => { + const icao_code = req.params.icao_code + Airport.findOne({where: {icao_code: icao_code}}).then(data => { if (data) res.json(data) else @@ -42,6 +51,17 @@ app.get("/api/flights/:dep_icao", (req, res) => { }) }) +app.get("/api/flights/:dep_icao/:arr_icao", (req, res) => { + const dep_icao = req.params.dep_icao + const arr_icao = req.params.arr_icao + Flight.findAll({where: {dep_icao: dep_icao, arr_icao: arr_icao}}).then(data => { + if (data) + res.json(data) + else + res.status(500).json({message: `An error occurred while fetching flights.`}) + }) +}) + app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, '../client/build', req.path)) })