/
app.js
59 lines (47 loc) · 1.59 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
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");
const cors = require("cors");
const swaggerUi = require("swagger-ui-express");
//const swaggerDocument = require("./swagger.json");
const fs = require("node:fs");
const YAML = require("yaml");
const file = fs.readFileSync("./swagger.yaml", "utf8");
const swaggerDocument = YAML.parse(file);
var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");
var authRouter = require("./routes/auth");
const authToken = require("./middleware/authToken");
const onlyAdmin = require("./middleware/onlyAdmin");
var app = express();
app.use(cors());
app.use(logger("dev"));
// middleware supaya bisa terima req.body
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use("/doc", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
//app.use('/', indexRouter);
app.use("/register", require("./routes/register"));
app.use("/auth", authRouter);
app.use("/me", require("./routes/me"));
app.use("/users", usersRouter);
app.use("/cart", authToken, require("./routes/cart"));
app.use("/products", require("./routes/product"));
app.use("/checkout", require("./routes/checkout"));
app.use("/transactions", require("./routes/transaction"));
app.use(
"/admin/products",
authToken,
onlyAdmin,
require("./routes/admin/product"),
);
app.use(
"/admin/transactions",
authToken,
onlyAdmin,
require("./routes/admin/transaction"),
);
module.exports = app;