Files
permit-api/src/organization/organization.controller.ts
2025-01-03 12:32:43 +05:30

80 lines
2.1 KiB
TypeScript

import { FastifyRequest, FastifyReply } from "fastify";
import { CreateOrgInput, UpdateOrgInput } from "./organization.schema";
import {
createOrg,
deleteOrg,
getOrg,
listOrgs,
updateOrg,
} from "./organization.service";
import { PageQueryParams } from "../pagination";
export async function createOrgHandler(req: FastifyRequest, res: FastifyReply) {
const input = req.body as CreateOrgInput;
try {
const authUser = req.user;
const org = await createOrg(input, authUser.tenantId);
return res.code(201).send(org);
} catch (err) {
return err;
}
}
export async function getOrgHandler(req: FastifyRequest, res: FastifyReply) {
const { orgId } = req.params as { orgId: string };
try {
const authUser = req.user;
const org = await getOrg(orgId, authUser.tenantId);
if (org === null)
return res.code(404).send({ error: "resource not found" });
return res.code(200).send(org);
} catch (err) {
return err;
}
}
export async function listOrgsHandler(req: FastifyRequest, res: FastifyReply) {
const queryParams = req.query as PageQueryParams;
console.log(req.user);
try {
const authUser = req.user;
const orgList = await listOrgs(queryParams, authUser.tenantId);
return res.code(200).send(orgList);
} catch (err) {
return err;
}
}
export async function updateOrgHandler(req: FastifyRequest, res: FastifyReply) {
const input = req.body as UpdateOrgInput;
const { orgId } = req.params as { orgId: string };
try {
const authUser = req.user;
const updatedOrg = await updateOrg(input, orgId, authUser.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 deleteOrgHandler(req: FastifyRequest, res: FastifyReply) {
const { orgId } = req.params as { orgId: string };
try {
const authUser = req.user;
const deleteResult = await deleteOrg(orgId, authUser.tenantId);
if (deleteResult.deletedCount === 0)
return res.code(404).send({ error: "resource not found" });
return res.code(204).send();
} catch (err) {
return err;
}
}