import { Request, Response } from "express"; import Booking from "../models/booking.model"; import BookingRepository from "../repositories/booking.repository"; export default class BookingController { async create(req: Request, res: Response) { if (!req.body.hotelId || !req.body.clientId) { res.status(400).json({ message: "Content cannot be empty" }); } const bookingParams = { hotelId: req.body.hotelId, clientId: req.body.clientId, }; try { const booking = await BookingRepository.create(bookingParams); res.status(201).json(booking); } catch (err) { res.status(500).json({ message: err || "Internal Server Error!" }); } } async findAll(req: Request, res: Response) { try { const bookings = await BookingRepository.retrieveAll(); res.status(200).json(bookings); } catch (err) { res.status(500).json({ message: err || "Internal Server Error!", }); } } async findOne(req: Request, res: Response) { if (!req.body.id) { res.status(400).json({ message: "id cannot be empty" }); } try { const booking = await BookingRepository.retrieveById(req.body.id); res.status(200).json(booking); } catch (err) { res.status(500).json({ message: err || "Internal Server Error!", }); } } async update(req: Request, res: Response) { res.status(405).json({ message: "Cannot update booking" }); } async delete(req: Request, res: Response) { if (!req.body.id) { res.status(400).json({ message: "id cannot be empty" }); } try { await BookingRepository.delete(req.body.id); res.status(204); } catch (err) { res.status(500).json({ message: err || "Internal Server Error!", }); } } async deleteAll(req: Request, res: Response) { try { await BookingRepository.deleteAll(); res.status(204); } catch (err) { res.status(500).json({ message: err || "Internal Server Error!", }); } } }