diff --git a/server/src/controllers/boatTypeControllers.controllers.ts b/server/src/controllers/boatTypeControllers.controllers.ts index dff49a0d2c10223daa9f5eeeb0b539a729f58e55..37f6aa2faf545c6395b8e1f975e9dd846a05c7b4 100644 --- a/server/src/controllers/boatTypeControllers.controllers.ts +++ b/server/src/controllers/boatTypeControllers.controllers.ts @@ -43,7 +43,7 @@ const showAllBoatTypes = async (req: Request, res: Response) => { return res.status(200).send({ success: true, result: allBoatTypes.map((boattype) => { - return { name: boattype.name, seats: boattype.seats }; + return { id: boattype.id, name: boattype.name, seats: boattype.seats }; }), }); } catch (error) { @@ -102,11 +102,61 @@ const showBoatTypeById = async (req: Request, res: Response) => { } }; +//update boatType by given id +const updateBoatTypeById = async (req: Request, res: Response) => { + try { + //check authority + if (!(res.locals.user.role === "coordinator")) { + return res + .status(403) + .json({ success: false, error: "MustBeCoordinator" }); + } + + //get id + const givenId = req.params.id; + + //check if boatType can be found using givenId + const foundBoatType = await BoatType.findByPk(givenId); + + if (!foundBoatType) { + return res + .status(404) + .json({ success: false, error: "boatTypeIdNotFound" }); + } + + //get new input + const input = req.body; + + //try to update + const updatedBoatType = await BoatType.update(input, { + where: { + id: givenId, + }, + returning: true, + }); + + //return after updating + const boatTypeDataAfterUpdate = updatedBoatType[1][0]; + return res.status(200).json({ + success: true, + result: { + id: boatTypeDataAfterUpdate.id, + name: boatTypeDataAfterUpdate.name, + seats: boatTypeDataAfterUpdate.seats, + }, + }); + } catch (error) { + console.error(error.message); + return res.status(500).json({ success: false, error: "serverError" }); + } +}; + const boatTypeControllers = { showAllBoatTypes, createBoatTypeController, deleteBoatTypeById, showBoatTypeById, + updateBoatTypeById, }; export default boatTypeControllers;