feat: Add Swagger API documentation
This commit introduces Swagger API documentation for all endpoints in the application. - Installs and . - Configures Swagger in to generate and serve API documentation at . - Adds JSDoc-style Swagger annotations to all routes in and the directory (, , , , , ). - Defines a cookie-based security scheme for authenticated routes. This allows for interactive API documentation and testing via the endpoint.
This commit is contained in:
@@ -39,6 +39,13 @@ DB.getDB.then((DB) => {
|
||||
// });
|
||||
// });
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* tags:
|
||||
* name: Payments
|
||||
* description: Payment processing
|
||||
*/
|
||||
|
||||
let intent = async (req, res) => {
|
||||
const userid = req.body.userid;
|
||||
const price = req.body.price || 500;
|
||||
@@ -94,9 +101,76 @@ DB.getDB.then((DB) => {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /payments/create-payment-intent:
|
||||
* post:
|
||||
* summary: Creates a Stripe Payment Intent
|
||||
* tags: [Payments]
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* userid:
|
||||
* type: string
|
||||
* price:
|
||||
* type: number
|
||||
* description:
|
||||
* type: string
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
*/
|
||||
router.post("/create-payment-intent", intent);
|
||||
/**
|
||||
* @swagger
|
||||
* /payments/intent:
|
||||
* post:
|
||||
* summary: Creates a Stripe Payment Intent (Alias for /create-payment-intent)
|
||||
* tags: [Payments]
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* userid:
|
||||
* type: string
|
||||
* price:
|
||||
* type: number
|
||||
* description:
|
||||
* type: string
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
*/
|
||||
router.post("/intent", intent);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /payments/register:
|
||||
* post:
|
||||
* summary: Registers a payment after a successful Stripe transaction
|
||||
* tags: [Payments]
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* userid:
|
||||
* type: string
|
||||
* result:
|
||||
* type: object
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
*/
|
||||
router.post("/register", async (req, res) => {
|
||||
const userid = req.body.userid;
|
||||
const result = req.body.result;
|
||||
|
||||
Reference in New Issue
Block a user