prueba_intricom/src/controllers/booking.controller.ts

91 lines
2.1 KiB
TypeScript

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!",
});
}
}
}