StatesAirline Server

이동국·2022년 10월 22일
0

저번에는 mini node server을 Node.js의 http모듈을 이용해 웹서버를 만들었지만 이번에는 Express 프레임워크를 이용해 만들고, 로컬 호스트와 연결해 보았다.

추가적으로 이번에 Postman으로 API 동작 여부를 확인하면서 스프린트를 진행하였다.

bookController.js

전체 데이터를 조회하였다.

 findAll: (req, res) => {
    return res.status(200).json(booking);
  },

요청 된 phone과 동일한 phone 예약 데이터를 조회하였다.

findByPhone: (req, res) => {
    const {phone} = req.params;
    if(req.params.phone){
      let list = booking.filter(el => el.phone=== req.params.phone)
      return res.status(200).json(list);
    }

  },

요청 된 id, phone과 동일한 uuid, phone 예약 데이터를 조회하였다.

findByPhoneAndFlightId: (req,res) => {
    const {phone, flight_uuid} = req.params;
    // TODO:
    
    if(req.params.flight_uuid){
      let list = booking.filter(el => el.flight_uuid === req.params.flight_uuid)
      return res.status(200).json(list);
    }
    if(req.params.phone){
      let list = booking.filter(el => el.phone === req.params.phone)
      return res.status(200).json(list);
    }
    return res.status(200).json(booking);
  },

요청된 예약 데이터를 저장하였다.

  create: (req, res) => {
   
    const booking_uuid = uuid();
    
    booking.push(req.body);
    return res.status(200).json(booking);
  
  },

요청 된 id, phone 값과 동일한 예약 데이터를 filter메서드를 사용해 삭제하였다.

deleteByBookingId: (req, res) => {
    const {booking_uuid} = req.params;
    let list = booking;
    if(req.query.phone){
      list = list.filter((item)=>{
        return req.query.phone !== item.phone
      })
    }
      if(req.query.id){
      list = list.filter((item)=>{
        return req.query.id !== item.id
      })
    }
    return res.status(200).json(list)
  }

flightController.js

요청 된 파라미터 departure_times, arrival_times 값과 동일한 값을 가진 항공편 데이터를 조회하고,
요청 된 파라미터 departure, destination 값과 동일한 값을 가진 항공편 데이터를 조회하였다.

findAll: (req, res) => {
    const { departure_times, arrival_times, destination, departure } = req.query;
    if(departure_times && arrival_times){
      let filtered = flights.filter(el => el.departure_times === departure_times && el.arrival_times === arrival_times)
      return res.json(filtered);
    }
    if(departure&& destination){
      let filtered = flights.filter(el => el.departure === departure && el.destination === destination)
      return res.json(filtered);
    }

    return res.json(flights);
  },

요청 된 uuid 값과 동일한 uuid 값을 가진 항공편 데이터를 조회하였다.

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

  },

요청 된 uuid 값과 동일한 uuid 값을 가진 항공편 데이터를 요쳥 된 Body 데이터로 수정하였다.

update: (req, res) => {
    const { uuid } = req.params;
    const bodyData = req.body;
     
     if(req.params){
      let data = flights.filter((el)=> el.uuid === req.params.uuid)
      let list = Object.assign(data[0], req.body);
      return res.status(200).json(list)
     }
  }

0개의 댓글