Ignore:
Timestamp:
10/15/22 15:28:57 (2 years ago)
Author:
Nace Gjorgjievski <nace.gorgievski123@…>
Branches:
master
Children:
113029b
Parents:
ee05663
Message:

Full Admin Functionality Added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • backend/routes/orderRoutes.js

    ree05663 r55ed171  
    2121      isPaid: req.body.isPaid,
    2222      paidAt: req.body.paidAt,
     23      isConfirmed: req.body.isConfirmed,
     24      contactNumber: req.body.contactNumber,
    2325    });
    2426    const order = await newOrder.save();
     
    3335    const orders = await Order.find({ user: req.user._id });
    3436    res.send(orders);
     37  })
     38);
     39const PAGE_SIZE = 10;
     40orderRouter.get(
     41  "/",
     42  expressAsyncHandler(async (req, res) => {
     43    const { query } = req;
     44    const pageSize = query.pageSize || PAGE_SIZE;
     45    const page = query.page || 1;
     46    const isConfirmed = query.isConfirmed || "";
     47    const isShipped = query.isShipped || "";
     48    const searchQuery = query.query || "";
     49    const isDelivered = false;
     50    const queryFilter =
     51      searchQuery && searchQuery !== "all"
     52        ? { _: { $regex: searchQuery, $options: "i" } }
     53        : {};
     54    const isConfirmedFilter =
     55      isConfirmed && isConfirmed !== "all" ? { isConfirmed } : {};
     56    const isShippedFilter =
     57      isShipped && isShipped !== "all" ? { isShipped } : {};
     58
     59    const orders = await Order.find({
     60      ...queryFilter,
     61      ...isConfirmedFilter,
     62      ...isShippedFilter,
     63      ...isDelivered,
     64    })
     65      .skip(pageSize * (page - 1))
     66      .limit(pageSize);
     67    const countOrders = await Order.countDocuments({
     68      ...isConfirmedFilter,
     69      ...isShippedFilter,
     70    });
     71    res.send({
     72      orders,
     73      countOrders,
     74      page,
     75      pages: Math.ceil(countOrders / pageSize),
     76    });
     77    //const orders = await Order.find();
     78    //res.send(orders);
    3579  })
    3680);
     
    4993);
    5094
     95orderRouter.put(
     96  "/action",
     97  expressAsyncHandler(async (req, res) => {
     98    if (req.body.isConfirmed) {
     99      const order = await Order.updateOne(
     100        { _id: req.body._id },
     101        {
     102          $set: {
     103            isConfirmed: req.body.isConfirmed,
     104          },
     105        }
     106      );
     107    } else if (req.body.isShipped) {
     108      const order = await Order.updateOne(
     109        { _id: req.body._id },
     110        {
     111          $set: {
     112            isShipped: req.body.isShipped,
     113            shippedAt: req.body.shippedAt,
     114          },
     115        }
     116      );
     117    } else if (req.body.isDelivered && req.body.isPaid) {
     118      const order = await Order.updateOne(
     119        { _id: req.body._id },
     120        {
     121          $set: {
     122            isDelivered: req.body.isDelivered,
     123            deliveredAt: req.body.deliveredAt,
     124            isPaid: req.body.isPaid,
     125            paidAt: req.body.paidAt,
     126          },
     127        }
     128      );
     129    } else {
     130      const order = await Order.updateOne(
     131        { _id: req.body._id },
     132        {
     133          $set: {
     134            isDelivered: req.body.isDelivered,
     135            deliveredAt: req.body.deliveredAt,
     136          },
     137        }
     138      );
     139    }
     140
     141    res.status(200).send({ message: "Succesful" });
     142  })
     143);
     144
    51145export default orderRouter;
Note: See TracChangeset for help on using the changeset viewer.