States Airline(server)

KoEunseo·2022년 8월 12일
0

코드스테이츠

목록 보기
18/45

flightController.js

const flights = require('../repository/flightList');
const fs = require('fs');

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

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;
    if (phone) {
      const phoneBooking = booking.filter(book => {
        return phone === book.phone
      })
      return res.status(200).json(phoneBooking);
    }
    return res.status(200).json(booking);
  },
  // [GET] /book/:phone/:flight_uuid 요청을 수행합니다.
  // 요청 된 id, phone과 동일한 uuid, phone 예약 데이터를 조회합니다.
  findByPhoneAndFlightId: (req, res) => {
    const { phone, flight_uuid } = req.params;
    // TODO:
    if (phone) {
      phoneBooking = booking.filter(book => {
        return phone === book.phone
      })
      return res.status(200).json(phoneBooking);
    }
    if (flight_uuid) {
      const uuidBooking = booking.filter(book => {
        return flight_uuid === booking.flight_uuid
      })
      return res.status(200).json(uuidBooking);
    }
    return res.status(200).json(booking);
  },
  // [POST] /book 요청을 수행합니다.
  // 요청 된 예약 데이터를 저장합니다.
  create: (req, res) => {
    // POST /book에서 사용할 booking_uuid입니다.
    const booking_uuid = uuid();
    // TODO:
    booking.push(req.body);
    return res.status(200).json(booking);
  },

  // Optional
  // [DELETE] /book/:booking_uuid 요청을 수행합니다.
  // 요청 된 id, phone 값과 동일한 예약 데이터를 삭제합니다.
  deleteByBookingId: (req, res) => {
    const { booking_uuid } = req.params;
    // TODO:
  }
};

페어분이 코로나에 걸리셔서(ㅠoㅠ) bookController는 혼자 진행했다!
서버는 정말 긴가민가 알겠으면서 모르겠다.
낼 하는 아고라스테이츠 서버 만들기는 어떻게 하지 감이 안온다;ㅁ; 힁
물론 내일이 되면 어떻게든 하긴 하것지....!!!!

profile
주니어 플러터 개발자의 고군분투기

0개의 댓글