Skip to content

Commit 0605b6a

Browse files
committed
Swagger Documentation created for all Endpoints
1 parent eb336d1 commit 0605b6a

10 files changed

+1163
-29
lines changed

index.js

+29
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
const express = require("express");
22
const { connection } = require("./db");
33
const cors = require("cors");
4+
const swaggerJSdoc = require("swagger-jsdoc");
5+
const swaggerUI = require("swagger-ui-express");
46
const rateLimitMiddleware = require("./middlewares/RateLimitMiddleware");
57
const userRouter = require("./routes/UserRouter");
68
const categoryRouter = require("./routes/CategoryRouter");
@@ -14,6 +16,33 @@ const app = express();
1416
app.use(cors());
1517
app.use(express.json());
1618

19+
const options={
20+
definition:{
21+
openapi:"3.0.0",
22+
info:{
23+
title:"E-commerce API",
24+
version:"1.0.0"
25+
},
26+
servers:[
27+
{
28+
url:`http://localhost:${process.env.PORT}`
29+
}
30+
]
31+
},
32+
apis:["./routes/*.js"]
33+
};
34+
35+
const openAPIspec=swaggerJSdoc(options);
36+
37+
// Swagger Documentation API Endpoint
38+
app.use("/docs",swaggerUI.serve, swaggerUI.setup(openAPIspec));
39+
40+
// app.use((req, res, next) => {
41+
// res.header('Access-Control-Allow-Origin', '*');
42+
// res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
43+
// next();
44+
// });
45+
1746
app.use(rateLimitMiddleware);
1847

1948
app.use("/", userRouter);

middlewares/AuthMiddleware.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ const Blacklist = require('../models/BlackListModel');
33
require("dotenv").config();
44

55
const authMiddleware = async (req, res, next) => {
6-
const token = req.header('Authorization').split(' ')[1];
6+
const authorizationHeader = req.header('Authorization');
7+
if (!authorizationHeader || !authorizationHeader.startsWith('Bearer ')) {
8+
return res.status(401).json({ error: 'Access denied, token required' });
9+
}
10+
11+
const token = authorizationHeader.split(' ')[1];
712
if (!token) {
813
return res.status(401).json({ error: 'Access denied, token required' });
914
}

models/OrderModel.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ const orderSchema = new mongoose.Schema({
1212
},
1313
],
1414
total: { type: Number, required: true },
15-
date: { type: Date, required: true }
15+
date: { type: Date, required: true },
16+
status: { type: String, required: true }
1617
});
1718

1819
const Order = mongoose.model('Order', orderSchema);

0 commit comments

Comments
 (0)