ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • StatesAirline Server
    FE 2023. 6. 5. 16:28

    app.js

    const port = 3001;

    const flightRouter = require('./router/flightRouter');
    const bookRouter = require('./router/bookRouter');
    const airportRouter = require('./router/airportRouter');

    app.use(cors());
    app.use(express.json());

    app.use('/flight', flightRouter);
    app.use('/book', bookRouter);
    app.use('/airport', airportRouter);

    app.use('/flight', flightRouter)은 '/flight'로 시작하는 경로에서 flightRouter를 처리한다. /book과 /airport도 마찬가지이다.

     

     

    flightRouter.js

    const { findAll, findById, update } = require('../controller/flightController');
    const express = require('express');
    const router = express.Router();

    router.get('/', findAll);

    router.get('/:uuid', findById);

    router.put('/:uuid', update);

    module.exports = router;

    './'에 대한 GET 경로를 findAll에 만든다.

     

     

    flightController.js

    module.exports = {
    // [GET] /flight
    // 요청 된 파라미터 departure_times, arrival_times 값과 동일한 값을 가진 항공편 데이터를 조회합니다.
    // 요청 된 파라미터 departure, destination 값과 동일한 값을 가진 항공편 데이터를 조회합니다.
    findAll: (req, res) => {
    const { departure_times, arrival_times, destination, departure } = req.query;
    // TODO:
    if(departure_times !== undefined && arrival_times !== undefined){
    return res.status(200).json(flights.filter((obj) => {
    return obj.departure_times === departure_times && obj.arrival_times === arrival_times;
    }))
    }
    if(departure !== undefined && destination !== undefined){
    return res.status(200).json(flights.filter((obj) => {
    return obj.departure === departure && obj.destination === destination;
    }))
    }

    return res.status(200).json(flights);
    },

     

    findById: (req, res) => {
    const { uuid } = req.params;
    // TODO:
    let newFlights = flights.filter((obj) => {
    return obj.uuid === uuid})
     
    return res.json(newFlights);

    },

     

     

     

     

    bookController.js

    // POST /book에서 사용할 uuid입니다.
    const { v4: uuid } = require('uuid');
    // 항공편 예약 데이터를 저장합니다.
    let booking = [];

    module.exports = {
    // [GET] /book 요청을 수행합니다.
    // 전체 예약 데이터를 조회합니다.
    findAll: (req, res) => {
    return res.status(200).json(booking);
    },
    // [GET] /book/:phone 요청을 수행합니다.
    // 요청 된 phone과 동일한 phone 예약 데이터를 조회합니다.
    findByPhone: (req, res) => {
    const {phone} = req.params;
    let reservation = booking.filter((obj) =>
    {
    return obj.phone === phone
    });
    return res.json(reservation);
    },

     

     

     

    // [GET] /book/:phone/:flight_uuid 요청을 수행합니다.
    // 요청 된 id, phone과 동일한 uuid, phone 예약 데이터를 조회합니다.
    findByPhoneAndFlightId: (req,res) => {
    const {phone, flight_uuid} = req.params;
    // TODO:
    let reservation = booking.filter((obj) =>
    {
    return obj.phone === phone && obj.flight_uuid === flight_uuid
    });
    return res.json(reservation);
    },
    // [POST] /book 요청을 수행합니다.
    // 요청 된 예약 데이터를 저장합니다.
    create: (req, res) => {
    // POST /book에서 사용할 booking_uuid입니다.
    const booking_uuid = uuid();
    // TODO:
    let information = {
    flight_uuid : req.body.flight_uuid,
    name : req.body.name,
    phone : req.body.phone,
    booking_uuid : booking_uuid
    }
    booking.push(information);
    return res.status(201).json(information);
    },

    'FE' 카테고리의 다른 글

    기술면접  (0) 2023.06.08
    my-agora-states-server  (0) 2023.06.07
    RefactorExpress  (0) 2023.06.02
    CORS  (0) 2023.06.01
    StateAirline Client part-2  (0) 2023.05.31
Designed by Tistory.