89 lines
2.4 KiB
TypeScript
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;
|
|
}
|
|
}
|