All files / postcardotp-backend/src/routes campaignRoutes.js

100% Statements 14/14
100% Branches 0/0
100% Functions 0/0
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 711x 1x 1x       1x       1x 1x 1x   1x     1x               1x               1x                                     1x                   1x             1x  
const express = require("express");
const campaignController = require("../controllers/campaignController");
const { validateRequest } = require("../middleware/validationMiddleware");
const {
  createCampaingSchema,
  updateCampaingSchema,
} = require("../utils/validationSchema");
const {
  loginSignupLimiter,
  campaignLimiter,
} = require("../middleware/rateLimitMiddleware");
const { authMiddleware } = require("../middleware/authMiddleware");
const { upload } = require("../middleware/multerMiddleware");
 
const router = express.Router();
 
// GET route for fetching all campaign records
router.get(
  "/",
  authMiddleware,
  campaignLimiter,
  campaignController.listCampaigns,
);
 
// Get route for fetching single campaign record
router.get(
  "/:id",
  authMiddleware,
  campaignLimiter,
  campaignController.listOneCampaign,
);
 
// POST route for creating a new campaign
router.post(
  "/",
  upload.fields([
    {
      name: "postcard_front_img",
      maxCount: 1,
    },
    {
      name: "company_logo",
      maxCount: 1,
    },
  ]),
  authMiddleware,
  campaignLimiter,
  validateRequest(createCampaingSchema),
  campaignController.createCampaign,
);
 
// PUT route for updating a campaign
router.put(
  "/:id",
  authMiddleware,
  campaignLimiter,
  upload.none(),
  validateRequest(updateCampaingSchema),
  campaignController.updateCampaign,
);
 
// DELETE route for deleting the campaign
router.delete(
  "/:id",
  authMiddleware,
  campaignLimiter,
  campaignController.deleteCampaign,
);
 
module.exports = router;