groupController.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. const Group = require('../models/Group');
  2. // @desc 获取所有群组
  3. // @route GET /api/groups
  4. // @access Private/Admin
  5. const getGroups = async (req, res) => {
  6. try {
  7. const groups = await Group.findAll();
  8. res.json(groups);
  9. } catch (error) {
  10. res.status(500).json({ message: '服务器错误' });
  11. }
  12. };
  13. // @desc 获取单个群组
  14. // @route GET /api/groups/:id
  15. // @access Private/Admin
  16. const getGroupById = async (req, res) => {
  17. try {
  18. const group = await Group.findById(req.params.id);
  19. if (group) {
  20. res.json(group);
  21. } else {
  22. res.status(404).json({ message: '群组不存在' });
  23. }
  24. } catch (error) {
  25. res.status(500).json({ message: '服务器错误' });
  26. }
  27. };
  28. // @desc 创建群组
  29. // @route POST /api/groups
  30. // @access Private/Admin
  31. const createGroup = async (req, res) => {
  32. try {
  33. const { groupId, groupName } = req.body;
  34. const groupIdExists = await Group.findByGroupId(groupId);
  35. if (groupIdExists) {
  36. return res.status(400).json({ message: '群组ID已存在' });
  37. }
  38. const id = await Group.create({ groupId, groupName });
  39. const group = await Group.findById(id);
  40. res.status(201).json(group);
  41. } catch (error) {
  42. res.status(500).json({ message: '服务器错误' });
  43. }
  44. };
  45. // @desc 更新群组
  46. // @route PUT /api/groups/:id
  47. // @access Private/Admin
  48. const updateGroup = async (req, res) => {
  49. try {
  50. const { groupName, isActive } = req.body;
  51. const group = await Group.findById(req.params.id);
  52. if (!group) {
  53. return res.status(404).json({ message: '群组不存在' });
  54. }
  55. await Group.update(req.params.id, { groupName, isActive });
  56. const updatedGroup = await Group.findById(req.params.id);
  57. res.json(updatedGroup);
  58. } catch (error) {
  59. res.status(500).json({ message: '服务器错误' });
  60. }
  61. };
  62. // @desc 删除群组
  63. // @route DELETE /api/groups/:id
  64. // @access Private/Admin
  65. const deleteGroup = async (req, res) => {
  66. try {
  67. const group = await Group.findById(req.params.id);
  68. if (!group) {
  69. return res.status(404).json({ message: '群组不存在' });
  70. }
  71. await Group.delete(req.params.id);
  72. res.json({ message: '群组已删除' });
  73. } catch (error) {
  74. res.status(500).json({ message: '服务器错误' });
  75. }
  76. };
  77. module.exports = {
  78. getGroups,
  79. getGroupById,
  80. createGroup,
  81. updateGroup,
  82. deleteGroup
  83. };