Add permits module
This commit is contained in:
87
src/permit/permit.controller.ts
Normal file
87
src/permit/permit.controller.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
import { FastifyReply, FastifyRequest } from "fastify";
|
||||
import { CreatePermitInput, UpdatePermitInput } from "./permit.schema";
|
||||
import {
|
||||
createPermit,
|
||||
deletePermit,
|
||||
getPermit,
|
||||
listPermits,
|
||||
updatePermit,
|
||||
} from "./permit.service";
|
||||
import { PageQueryParams } from "../pagination";
|
||||
|
||||
export async function createPermitHandler(
|
||||
req: FastifyRequest,
|
||||
res: FastifyReply
|
||||
) {
|
||||
const input = req.body as CreatePermitInput;
|
||||
|
||||
try {
|
||||
const permit = await createPermit(input, req.user.tenantId);
|
||||
return res.code(201).send(permit);
|
||||
} catch (err) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getPermitHandler(req: FastifyRequest, res: FastifyReply) {
|
||||
const { permitId } = req.params as { permitId: string };
|
||||
|
||||
try {
|
||||
const permit = await getPermit(permitId, req.user.tenantId);
|
||||
if (permit === null)
|
||||
return res.code(404).send({ error: "resource not foound" });
|
||||
|
||||
return res.code(200).send(permit);
|
||||
} catch (err) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
export async function listPermitsHandler(
|
||||
req: FastifyRequest,
|
||||
res: FastifyReply
|
||||
) {
|
||||
const queryParams = req.query as PageQueryParams;
|
||||
|
||||
try {
|
||||
const authUser = req.user;
|
||||
const orgList = await listPermits(queryParams, authUser.tenantId);
|
||||
return res.code(200).send(orgList);
|
||||
} catch (err) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
export async function updatePermitHandler(
|
||||
req: FastifyRequest,
|
||||
res: FastifyReply
|
||||
) {
|
||||
const input = req.body as UpdatePermitInput;
|
||||
const { permitId } = req.params as { permitId: string };
|
||||
|
||||
try {
|
||||
const updatedOrg = await updatePermit(input, permitId, req.user.tenantId);
|
||||
if (!updatedOrg) return res.code(404).send({ error: "resource not found" });
|
||||
|
||||
return res.code(200).send(updatedOrg);
|
||||
} catch (err) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
export async function deletePermitHandler(
|
||||
req: FastifyRequest,
|
||||
res: FastifyReply
|
||||
) {
|
||||
const { permitId } = req.params as { permitId: string };
|
||||
|
||||
try {
|
||||
const deleteResult = await deletePermit(permitId, 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user