Stateairline-server

김범주·2022년 3월 25일
0

Code Review

목록 보기
9/15

flightController.js

module.exports = {
  // [GET] /flight
  // 요청 된 departure_times, arrival_times, destination, departure 값과 동일한 값을 가진 항공편 데이터를 조회합니다.
  findAll: (req, res) => {
    // TODO:
    let ans = flights
    if (req.query.departure_times) {
      ans = ans.filter((el) => {
        return el.departure_times.includes(req.query.departure_times)
      })
    }
    if (req.query.arrival_times) {
      ans = ans.filter((el) => {
        return el.arrival_times.includes(req.query.arrival_times)
      })
    }
    if (req.query.destination) {
      ans = flights.filter((el) => {
        return el.destination.includes(req.query.destination)
      })
    }
    if (req.query.departure) {
      ans = ans.filter((el) => {
        return el.departure.includes(req.query.departure)
      })
    }
    return res.json(ans);
  },
  // [GET] /flight/:id
  // 요청 된 id 값과 동일한 uuid 값을 가진 항공편 데이터를 조회합니다.
  findById: (req, res) => {
    // TODO:
    let ans = flights
    if (req.params.id) {
      return res.json(ans.filter((el) => {
        return el.uuid.includes(req.params.id)
      }))
    }

  },

bookController.js

let booking = [];

module.exports = {
  // [GET] /book 요청을 수행합니다.
  // 전체 데이터 혹은 요청 된 flight_uuid, phone 값과 동일한 예약 데이터를 조회합니다.
  findById: (req, res) => {
    // TODO:
    if (req.query.flight_uuid) {
      let ans = booking.filter((el) => {
        return el.flight_uuid.includes(req.query.flight_uuid)
      })
      return res.status(200).json(ans)
    }
    if (req.query.phone) {
      let ans = booking.filter((el) => {
        return el.phone.includes(req.query.phone)
      })
      return res.status(200).json(...ans)
    }
    return res.status(200).json(booking);
  },

  // [POST] /book 요청을 수행합니다.
  // 요청 된 예약 데이터를 저장합니다.
  // 응답으로는 book_id를 리턴합니다.
  // Location Header로 예약 아이디를 함께 보내준다면 RESTful한 응답에 더욱 적합합니다.
  // 참고 링크: https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#useful-post-responses
  create: (req, res) => {
    // TODO:
    if ('flight_uuid' in req.body) {
      booking.push(req.body)
    }
    else {
      return res.status(400)
    }
    return res.status(201).json({});
  },

  // [DELETE] /book?phone={phone} 요청을 수행합니다.
  // 요청 된 phone 값과 동일한 예약 데이터를 삭제합니다.
  deleteById: (req, res) => {
    // TODO:
    if (req.query.phone) {
      booking = booking.filter((el) => {
        return !(el.phone.includes(req.query.phone))
      })
    }

    return res.status(200).json(booking);
  }
};
profile
개발꿈나무

0개의 댓글