51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const express_1 = require("express");
|
|
const prisma_1 = __importDefault(require("../lib/prisma"));
|
|
const auth_1 = require("../middleware/auth");
|
|
const router = (0, express_1.Router)();
|
|
router.get('/', auth_1.requireAuth, async (req, res) => {
|
|
const departments = await prisma_1.default.department.findMany({
|
|
where: { companyId: req.user.companyId },
|
|
include: { _count: { select: { employees: true } } },
|
|
orderBy: { name: 'asc' },
|
|
});
|
|
return res.json(departments);
|
|
});
|
|
router.post('/', auth_1.requireAuth, async (req, res) => {
|
|
try {
|
|
const dept = await prisma_1.default.department.create({
|
|
data: { ...req.body, companyId: req.user.companyId },
|
|
});
|
|
return res.status(201).json(dept);
|
|
}
|
|
catch (err) {
|
|
return res.status(500).json({ error: 'Internal server error' });
|
|
}
|
|
});
|
|
router.patch('/:id', auth_1.requireAuth, async (req, res) => {
|
|
try {
|
|
const dept = await prisma_1.default.department.update({
|
|
where: { id: req.params.id },
|
|
data: req.body,
|
|
});
|
|
return res.json(dept);
|
|
}
|
|
catch (err) {
|
|
return res.status(500).json({ error: 'Internal server error' });
|
|
}
|
|
});
|
|
router.delete('/:id', auth_1.requireAuth, async (req, res) => {
|
|
try {
|
|
await prisma_1.default.department.delete({ where: { id: req.params.id } });
|
|
return res.json({ message: 'Deleted' });
|
|
}
|
|
catch (err) {
|
|
return res.status(500).json({ error: 'Internal server error' });
|
|
}
|
|
});
|
|
exports.default = router;
|
|
//# sourceMappingURL=departments.js.map
|