-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
55 lines (47 loc) · 1.86 KB
/
main.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
const express = require("express");
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const cookie_session = require('cookie-session');
const passport = require('./src/auth/passport');
const swaggerUI = require('swagger-ui-express');
const YAML = require('yamljs');
const config = require('./src/config');
const swaggerDocument = YAML.load('./swagger.yaml');
const app = express();
app.use(cors(), helmet(), express.json());
app.use(cookie_session({
name: 'session',
keys: config.session.keys,
maxAge: config.session.cookie.age,
secure: config.session.cookie.secure,
}));
app.use(passport.initialize(), passport.session());
app.use(morgan('dev'));
// Routes
app.use("/auth", require("./src/auth/routes/auth.routes"));
app.use("/users", require("./src/user/routes/users.routes"));
app.use("/orders", require('./src/order/routes/orders.routes'))
app.use("/products", require("./src/product/routes/products.routes"));
app.use("/paymentmethods", require("./src/paymentMethod/routes/paymentMethod.routes"));
app.use('/docs', swaggerUI.serve, swaggerUI.setup(swaggerDocument));
// Error handler
app.use((error, req, res, next) => {
console.log(error);
res.status(500).json({ message: "Ha ocurrido un error interno", error: true, errorDetails: error.errorDetails});
})
// Homepage
app.get("/", (req,res) =>{
res.send('\
<h2>Servicio de gestion de pedidos del restaurante "Delilah Restó"</h2>\
<p>Porfavor, dirigase a <a href="/docs">/docs</a> para mas informacion acerca de como usar esta API :)</p>'
);
});
app.use((req,res,next) => {
if (res.writableEnded) return
res.status(404).json({ message: `No se ha encontrado una ruta con nombre '${req.url}'`, error: true });
});
app.listen(config.server.port, () => {
console.log(`Listening at port: ${config.server.port}`);
});
module.exports = app;