-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.js
More file actions
89 lines (77 loc) · 3.25 KB
/
app.js
File metadata and controls
89 lines (77 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
require('module-alias/register');
require('@altertex/config/dotenv');
//Importaciones de librerias
const express = require('express');
const cors = require('cors');
const cookieParser = require('cookie-parser');
const swaggerJSDoc = require('swagger-jsdoc');
const csrf = require('csurf')
//Importaciones de configuracion
const corsOptions = require('@altertex/config/corsOptions');
const opcionesSwagger = require('@altertex/config/swagger');
const swaggerUI = require('swagger-ui-express');
//Importaciones de rutas
const rutasAutenticacion = require('@altertex/aut/rutas/indexAutenticacion.routes');
const rutasUsuarios = require('@altertex/usu/rutas/indexUsuarios.routes');
const rutasCategorias = require('@altertex/cat/rutas/indexCategorias.routes');
const rutasProductos = require('@altertex/pro/rutas/indexProductos.routes');
const rutasProveedores = require('@altertex/prove/rutas/indexProveedores.routes');
const rutasSetsProductos = require('@altertex/setspro/rutas/indexSetsProductos.routes');
const rutasEmpleados = require('@altertex/emp/rutas/indexEmpleados.routes');
const rutasClientes = require('@altertex/cli/rutas/indexClientes.routes');
const rutasRoles = require('@altertex/rol/rutas/indexRoles.routes');
const rutasCuotas = require('@altertex/cuota/rutas/indexCuotas.routes');
const rutasPedidos = require('@altertex/pedidos/rutas/indexPedidos.routes');
const rutasEventos = require('@altertex/eve/rutas/indexEventos.routes');
const rutasPagos = require('@altertex/pago/rutas/indexPagos.routes');
const RUTAS = require('@altertex/util/const/rutas');
//Importaciones de CRON jobs
const cronCuotas = require('@altertex/CRON/ctrl/actualizarCuotaSet.controller');
const puerto = process.env.PORT || 5000;
//Configuracion de aplicacion express
const app = express();
app.use(express.json({limit: '5mb'}));
app.use(express.urlencoded({limit: '5mb', extended: true}));
app.use(cookieParser());
app.use(cors(corsOptions));
const proteccionCsrf = csrf({
cookie: {
httpOnly: true,
secure: false,
sameSite: 'strict'
}
})
cronCuotas.start();
//Usar las rutas para que esten disponibles en la aplicacion
app.use(RUTAS.API, rutasAutenticacion);
app.use(RUTAS.API, rutasUsuarios);
app.use(RUTAS.API, rutasProductos);
app.use(RUTAS.API, rutasProveedores);
app.use(RUTAS.API, rutasSetsProductos);
app.use(RUTAS.API, rutasEmpleados);
app.use(RUTAS.API, rutasClientes);
app.use(RUTAS.API, rutasRoles);
app.use(RUTAS.API, rutasCuotas);
app.use(RUTAS.API, rutasCategorias);
app.use(RUTAS.API, rutasPedidos);
app.use(RUTAS.API, rutasEventos);
app.use(RUTAS.API, rutasPagos);
app.use((req, res, next) => {
if (req.method === 'GET' && req.path === '/api/csrf-token') {
return next()
}
proteccionCsrf(req, res, next)
})
app.get('/api/csrf-token', proteccionCsrf, (req, res) => {
res.json({csrfToken: req.csrfToken()});
});
app.get('/', async (req, res) => {
return res
.status(200)
.json({mensaje: `Ruta por default Proyecto Text&Lines en ambiente: ${process.env.NODE_ENV}`});
});
//Configuracion de swaggerUI
const swaggerSpec = swaggerJSDoc(opcionesSwagger);
app.use(RUTAS.API_DOCS, swaggerUI.serve, swaggerUI.setup(swaggerSpec));
app.listen(puerto, () =>
console.log(`Servidor corriendo en puerto ${puerto} [${process.env.NODE_ENV}]`));