2024-06-14 12:07:20 +00:00
|
|
|
import { salesRouter } from "@/contexts/sales/infrastructure/express";
|
2024-05-15 19:56:22 +00:00
|
|
|
import Express from "express";
|
2024-05-19 22:04:23 +00:00
|
|
|
import { createContextMiddleware } from "./context.middleware";
|
2024-06-14 12:07:20 +00:00
|
|
|
import { authRouter, catalogRouter, profileRouter, usersRouter } from "./routes";
|
2024-04-23 15:29:38 +00:00
|
|
|
|
2024-05-15 19:56:22 +00:00
|
|
|
export const v1Routes = () => {
|
|
|
|
|
const routes = Express.Router({ mergeParams: true });
|
2024-04-23 15:29:38 +00:00
|
|
|
|
2024-05-15 19:56:22 +00:00
|
|
|
routes.get("/hello", (req, res) => {
|
|
|
|
|
res.send("Hello world!");
|
|
|
|
|
});
|
2024-04-23 15:29:38 +00:00
|
|
|
|
2024-05-21 16:48:40 +00:00
|
|
|
routes.use((req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
|
|
|
|
|
res.locals["context"] = createContextMiddleware();
|
2024-05-23 15:38:41 +00:00
|
|
|
//res.locals["middlewares"] = createMiddlewareMap();
|
2024-05-15 19:56:22 +00:00
|
|
|
|
2024-05-21 16:48:40 +00:00
|
|
|
return next();
|
|
|
|
|
});
|
2024-05-15 19:56:22 +00:00
|
|
|
routes.use((req, res, next) => {
|
2024-05-21 16:48:40 +00:00
|
|
|
console.log(`[${new Date().toLocaleTimeString()}] Incoming request to ${req.path}`);
|
2024-05-15 19:56:22 +00:00
|
|
|
next();
|
|
|
|
|
});
|
|
|
|
|
|
2024-06-14 12:07:20 +00:00
|
|
|
authRouter(routes);
|
|
|
|
|
profileRouter(routes);
|
|
|
|
|
usersRouter(routes);
|
|
|
|
|
catalogRouter(routes);
|
|
|
|
|
salesRouter(routes);
|
2024-05-15 19:56:22 +00:00
|
|
|
|
|
|
|
|
return routes;
|
|
|
|
|
};
|
2024-06-14 12:07:20 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
Comentarios: Cada usuario que no sea administrador tiene un registro asociado en "dealers" a modo de perfil
|
|
|
|
|
|
|
|
|
|
* Endpoints Públicos
|
|
|
|
|
/auth
|
|
|
|
|
|
|
|
|
|
POST /auth/login: Permite a los usuarios autenticarse y recibir un token JWT.
|
|
|
|
|
|
|
|
|
|
* Endpoints para Usuarios Registrados
|
|
|
|
|
/auth
|
|
|
|
|
|
|
|
|
|
POST /auth/logout: Permite a los usuarios cerrar sesión (podría implicar invalidar el token JWT).
|
|
|
|
|
GET /auth/identity: Devuelve la identidad del usuario autenticado, incluyendo id, name, email, language y roles.
|
|
|
|
|
|
|
|
|
|
/profile
|
|
|
|
|
|
|
|
|
|
GET /profile: Obtiene el perfil del usuario autenticado.
|
|
|
|
|
POST /profile: Actualiza el perfil del usuario autenticado.
|
|
|
|
|
|
|
|
|
|
/catalog
|
|
|
|
|
|
|
|
|
|
GET /catalog: Devuelve la lista de artículos del catálogo.
|
|
|
|
|
|
|
|
|
|
/quotes
|
|
|
|
|
|
|
|
|
|
GET /quotes: Devuelve las cotizaciones del usuario autenticado.
|
|
|
|
|
POST /quotes: Permite al usuario crear una nueva cotización.
|
|
|
|
|
PUT /quotes/
|
|
|
|
|
: Permite al usuario actualizar una cotización existente.
|
|
|
|
|
DELETE /quotes/
|
|
|
|
|
: Permite al usuario eliminar una cotización existente.
|
|
|
|
|
|
|
|
|
|
* Endpoints para Administradores
|
|
|
|
|
/auth
|
|
|
|
|
|
|
|
|
|
POST /auth/register: Permite al administrador registrar nuevos usuarios.
|
|
|
|
|
|
|
|
|
|
/users
|
|
|
|
|
|
|
|
|
|
GET /users: Devuelve la lista de todos los usuarios.
|
|
|
|
|
POST /users: Permite crear un nuevo usuario.
|
|
|
|
|
GET /users/
|
|
|
|
|
: Devuelve los detalles de un usuario específico.
|
|
|
|
|
PUT /users/
|
|
|
|
|
: Permite actualizar los detalles de un usuario específico.
|
|
|
|
|
DELETE /users/
|
|
|
|
|
: Permite eliminar un usuario específico.
|
|
|
|
|
|
|
|
|
|
/dealers
|
|
|
|
|
|
|
|
|
|
GET /dealers: Devuelve la lista de todos los distribuidores.
|
|
|
|
|
POST /dealers: Permite crear un nuevo distribuidor.
|
|
|
|
|
GET /dealers/
|
|
|
|
|
: Devuelve los detalles de un distribuidor específico.
|
|
|
|
|
PUT /dealers/
|
|
|
|
|
: Permite actualizar los detalles de un distribuidor específico.
|
|
|
|
|
DELETE /dealers/
|
|
|
|
|
: Permite eliminar un distribuidor específico.
|
|
|
|
|
|
|
|
|
|
/quotes
|
|
|
|
|
|
|
|
|
|
GET /quotes: Devuelve la lista de todas las cotizaciones.
|
|
|
|
|
POST /quotes: Permite crear una nueva cotización.
|
|
|
|
|
PUT /quotes/
|
|
|
|
|
: Permite actualizar una cotización existente.
|
|
|
|
|
DELETE /quotes/
|
|
|
|
|
: Permite eliminar una cotización existente.
|
|
|
|
|
|
|
|
|
|
*/
|