FactuGES_ERP/apps/server/src/routes/accounts.routes.ts
2025-03-04 18:08:33 +01:00

62 lines
1.6 KiB
TypeScript

import { validateRequestDTO } from "@common/presentation";
import {
ICreateAcccountResponseDTOSchema,
IGetAcccountResponseDTOSchema,
IUpdateAcccountResponseDTOSchema,
ListAccountsSchema,
} from "@contexts/accounts/presentation";
import {
createAccountController,
getAccountController,
listAccountsController,
updateAccountController,
} from "@contexts/accounts/presentation/controllers";
import { checkTabContext } from "@contexts/auth/infraestructure";
import { NextFunction, Request, Response, Router } from "express";
export const accountsRouter = (appRouter: Router) => {
const routes: Router = Router({ mergeParams: true });
routes.get(
"/",
validateRequestDTO(ListAccountsSchema),
checkTabContext,
//checkUser,
(req: Request, res: Response, next: NextFunction) => {
listAccountsController().execute(req, res, next);
}
);
routes.get(
"/:accountId",
validateRequestDTO(IGetAcccountResponseDTOSchema),
checkTabContext,
//checkUser,
(req: Request, res: Response, next: NextFunction) => {
getAccountController().execute(req, res, next);
}
);
routes.post(
"/",
validateRequestDTO(ICreateAcccountResponseDTOSchema),
checkTabContext,
//checkUser,
(req: Request, res: Response, next: NextFunction) => {
createAccountController().execute(req, res, next);
}
);
routes.put(
"/:accountId",
validateRequestDTO(IUpdateAcccountResponseDTOSchema),
checkTabContext,
//checkUser,
(req: Request, res: Response, next: NextFunction) => {
updateAccountController().execute(req, res, next);
}
);
appRouter.use("/accounts", routes);
};