Files
permit-api/src/rts/rts.controller.ts
2025-01-21 14:31:28 +05:30

89 lines
2.4 KiB
TypeScript

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;
}
}