import { FastifyReply, FastifyRequest } from "fastify"; import { CreateRtsInput, UpdateRtsInput, UploadRtsInput } from "./rts.schema"; import { createRts, deleteRts, getRts, listRts, newUpload, updateRts, } from "./rts.service"; import { PageQueryParams } from "../pagination"; export async function createRtsHandler(req: FastifyRequest, res: FastifyReply) { const input = req.body as CreateRtsInput; try { const rts = await createRts(input, req.user); return res.code(201).send(rts); } catch (err) { return err; } } export async function getRtsHandler(req: FastifyRequest, res: FastifyReply) { const { rtsId } = req.params as { rtsId: string }; try { const rts = await getRts(rtsId, req.user.tenantId); if (rts == null) return res.code(404).send({ error: "resource not found" }); return res.code(200).send(rts); } catch (err) { return err; } } export async function listRtsHandler(req: FastifyRequest, res: FastifyReply) { const queryParams = req.query as PageQueryParams; try { const rtsList = await listRts(queryParams, req.user.tenantId); return res.code(200).send(rtsList); } catch (err) { return err; } } export async function updateRtsHandler(req: FastifyRequest, res: FastifyReply) { const input = req.body as UpdateRtsInput; const { rtsId } = req.params as { rtsId: string }; try { const updatedRts = await updateRts(rtsId, input, req.user.tenantId); if (!updatedRts) return res.code(404).send({ error: "resource not found" }); return res.code(200).send(updatedRts); } catch (err) { return err; } } export async function deleteRtsHandler(req: FastifyRequest, res: FastifyReply) { const { rtsId } = req.params as { rtsId: string }; try { const deleteResult = await deleteRts(rtsId, req.user.tenantId); if (deleteResult.deletedCount == 0) return res.code(404).send({ error: "resource not found" }); return res.code(204).send(); } catch (err) { return err; } } export async function newFilesHandler(req: FastifyRequest, res: FastifyReply) { const input = req.body as UploadRtsInput; const { rtsId } = req.params as { rtsId: string }; try { const updatedRts = await newUpload(rtsId, input, req.user); if (!updatedRts) return res.code(404).send({ error: "resource not found" }); return res.code(200).send(updateRts); } catch (err) { return err; } }