added default views routes

This commit is contained in:
2025-05-20 16:30:02 +05:30
parent 690f8c71de
commit f0593fd928
4 changed files with 108 additions and 11 deletions

View File

@@ -1,13 +1,19 @@
import { FastifyReply, FastifyRequest } from 'fastify';
import { CreateViewInput, UpdateViewInput } from './view.schema';
import { FastifyReply, FastifyRequest } from "fastify";
import {
CreateViewInput,
SetDefaultView,
UpdateViewInput,
} from "./view.schema";
import {
createView,
deleteView,
getDefaultViews,
getView,
listViews,
updateDefaultView,
updateView,
} from './view.service';
import { PageQueryParams } from '../pagination';
} from "./view.service";
import { PageQueryParams } from "../pagination";
export async function createViewHandler(
req: FastifyRequest,
@@ -29,7 +35,7 @@ export async function getViewHandler(req: FastifyRequest, res: FastifyReply) {
try {
const view = await getView(viewId, req.user.tenantId);
if (view === null)
return res.code(404).send({ error: 'resource not found' });
return res.code(404).send({ error: "resource not found" });
return res.code(200).send(view);
} catch (err) {
@@ -58,7 +64,7 @@ export async function updateViewHandler(
try {
const updatedView = await updateView(viewId, input, req.user.tenantId);
if (!updatedView)
return res.code(404).send({ error: 'resource not found' });
return res.code(404).send({ error: "resource not found" });
return res.code(200).send(updateView);
} catch (err) {
@@ -75,10 +81,36 @@ export async function deleteViewHandler(
try {
const deleteResult = await deleteView(viewId);
if (deleteResult.deletedCount == 0)
return res.code(404).send({ error: 'resource not found' });
return res.code(404).send({ error: "resource not found" });
return res.code(204).send();
} catch (err) {
return err;
}
}
export async function getDefaultViewsHanlder(
req: FastifyRequest,
res: FastifyReply
) {
try {
const recInDb = await getDefaultViews(req.user);
return res.code(200).send(recInDb);
} catch (err) {
return err;
}
}
export async function updateDefaultViewsHanlder(
req: FastifyRequest,
res: FastifyReply
) {
const input = req.body as SetDefaultView;
try {
const recInDb = await updateDefaultView(input, req.user);
return res.code(200).send({ ...recInDb.defaultViews });
} catch (err) {
return err;
}
}