ibrohm's picture
Initial deploy via assistant API
eb4179c verified
const express = require('express');
const router = express.Router();
const Order = require('../models/Order');
const authMiddleware = require('../middleware/auth');
// GET all orders (admin)
router.get('/', authMiddleware, async (req, res) => {
try {
const orders = await Order.find().sort({ createdAt: -1 });
res.json(orders);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// GET orders by user
router.get('/user/:userId', async (req, res) => {
try {
const orders = await Order.find({ userId: req.params.userId }).sort({ createdAt: -1 });
res.json(orders);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// POST create order
router.post('/', async (req, res) => {
try {
const orderId = 'ORD-' + Date.now().toString(36).toUpperCase();
const order = new Order({ orderId, ...req.body });
await order.save();
res.status(201).json(order);
} catch (err) {
res.status(400).json({ error: err.message });
}
});
// PUT update order status (admin)
router.put('/:orderId/status', authMiddleware, async (req, res) => {
try {
const order = await Order.findOneAndUpdate(
{ orderId: req.params.orderId },
{ status: req.body.status },
{ new: true }
);
if (!order) return res.status(404).json({ error: 'Buyurtma topilmadi' });
res.json(order);
} catch (err) {
res.status(400).json({ error: err.message });
}
});
module.exports = router;