-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
127 lines (95 loc) · 3.56 KB
/
app.js
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
const express = require('express')
const models = require('./models');
const productoController = require('./controllers/ProductoController');
const tipoProductoController = require('./controllers/TipoProductoController');
const usuarioController = require('./controllers/UsuariosController')
const app = express()
const port = 3000
var bodyParser = require('body-parser');
var multer = require('multer');
const {query, body} = require("express-validator");
const {errorResponse, authenticateToken, authenticateAdmin, injectIsAdmin, buildResponse} = require("./utils/Utils");
var forms = multer();
var cors = require('cors')
const cookieParser = require('cookie-parser');
const MedioPagoController = require('./controllers/MedioPagoController');
const SucursalController = require('./controllers/SucursalController');
const PedidosController = require('./controllers/PedidosController');
const {validarCambioEstadoPedido} = require("./controllers/PedidosController");
const {Sequelize} = require("sequelize");
const config = require("./config/config.js");
const swaggerUi = require('swagger-ui-express');
const swaggerJSDoc = require('swagger-jsdoc');
const {auth} = require("mysql/lib/protocol/Auth");
app.use(cookieParser());
// Configuración de swagger
const swaggerOptions = {
definition: {
openapi: '3.0.0',
info: {
title: 'Documentación de API',
version: '1.0.0',
description: 'Documentación de la API web de El Patrón del Hard'
}
},
apis: ['./routes/docs.yaml']
}
const swaggerSpec = swaggerJSDoc(swaggerOptions);
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec))
// Configuración de CORS
var whitelist = ['http://localhost:4200', 'http://localhost:3000']
var corsOptions = {
credentials: true,
origin: function (origin, callback) {
if (!origin || whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Origen no permitido por CORS'))
}
}
}
app.use(cors(corsOptions))
// Configuración general de la plataforma
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(forms.array());
app.use(express.json());
// Rutas de la plataforma
app.get('/', authenticateAdmin, function (req, res) {
res.status(200).json(['DSW TP Backend']);
});
// Sesión
const sesionRoutes = require('./API_Routes/sesion');
app.use('/sesion', sesionRoutes);
// Productos
const productosRoutes = require('./API_Routes/products');
app.use('/products', productosRoutes);
// Categorías
const categoriasRoutes = require('./API_Routes/categorias');
app.use('/categories', categoriasRoutes);
// Carrito
app.post('/cart/updatePrices', productoController.getByCarrito)
// Sucursales
const sucursalesRoutes = require('./API_Routes/sucursales');
app.use('/sucursales', sucursalesRoutes);
// Medios de pago
const mediopagoRoutes = require('./API_Routes/mediopago');
app.use('/mediopago', mediopagoRoutes);
// Pedidos
const pedidosRoutes = require('./API_Routes/pedidos');
app.use('/pedidos', pedidosRoutes);
// Usuarios
const usuariosRoutes = require('./API_Routes/users');
app.use('/users', usuariosRoutes);
// Configuración de rutas para errores
app.get('*', function (req, res) {
res.status(404).send(errorResponse('404 - Not Found'));
});
app.post('*', function (req, res) {
res.status(404).send(errorResponse('404 - Not Found'));
});
const server = app.listen(port, () => {
console.log(`DSW TP Backend se está ejecutando en el puerto ${port}`)
})
// Export utilizado para los tests.
module.exports = server;