tweaks
This commit is contained in:
@@ -3,7 +3,6 @@ const prisma = require('../db');
|
|||||||
const { asyncHandler, httpError } = require('../lib/errors');
|
const { asyncHandler, httpError } = require('../lib/errors');
|
||||||
const { isValidPhone, normalizePhone } = require('../lib/phone');
|
const { isValidPhone, normalizePhone } = require('../lib/phone');
|
||||||
const { hashPassword } = require('../lib/passwords');
|
const { hashPassword } = require('../lib/passwords');
|
||||||
const { canAccessDealer } = require('../lib/access');
|
|
||||||
const { userPublicSelect, publicUser } = require('../lib/users');
|
const { userPublicSelect, publicUser } = require('../lib/users');
|
||||||
const { requireAuth, requireRole } = require('../middleware/auth');
|
const { requireAuth, requireRole } = require('../middleware/auth');
|
||||||
|
|
||||||
@@ -196,27 +195,4 @@ router.patch(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
router.post(
|
|
||||||
'/dealer-users',
|
|
||||||
requireRole('superAdmin', 'salesRep'),
|
|
||||||
asyncHandler(async (req, res) => {
|
|
||||||
const name = String(req.body?.name || '').trim();
|
|
||||||
const phone = normalizePhone(req.body?.phone);
|
|
||||||
const dealerId = String(req.body?.dealerId || '').trim();
|
|
||||||
if (!name || !isValidPhone(phone) || !dealerId) {
|
|
||||||
throw httpError(400, 'Name, phone, and dealerId are required');
|
|
||||||
}
|
|
||||||
if (!canAccessDealer(req.user, dealerId)) throw httpError(403, 'Forbidden');
|
|
||||||
|
|
||||||
const dealer = await prisma.dealer.findUnique({ where: { id: dealerId } });
|
|
||||||
if (!dealer) throw httpError(404, 'Dealer not found');
|
|
||||||
|
|
||||||
const user = await prisma.user.create({
|
|
||||||
data: { name, phone, role: 'dealer', dealerId },
|
|
||||||
select: userPublicSelect,
|
|
||||||
});
|
|
||||||
return res.status(201).json({ success: true, data: publicUser(user) });
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user