templates.controller.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const router_1 = __importDefault(require("@koa/router"));
  7. const templates_service_1 = require("./templates.service");
  8. const router = new router_1.default();
  9. /**
  10. * 获取模板分类列表
  11. * GET /api/templates
  12. */
  13. router.get('/', async (ctx) => {
  14. try {
  15. const { category } = ctx.query;
  16. let templates;
  17. if (category) {
  18. templates = templates_service_1.templatesService.getTemplatesByCategory(category);
  19. }
  20. else {
  21. templates = templates_service_1.templatesService.getTemplates();
  22. }
  23. ctx.body = {
  24. code: 0,
  25. message: 'success',
  26. data: templates,
  27. };
  28. }
  29. catch (error) {
  30. ctx.body = {
  31. code: 400,
  32. message: error.message || '获取模板列表失败',
  33. };
  34. }
  35. });
  36. /**
  37. * 获取模板分类
  38. * GET /api/templates/categories
  39. */
  40. router.get('/categories', async (ctx) => {
  41. try {
  42. const categories = templates_service_1.templatesService.getTemplateCategories();
  43. ctx.body = {
  44. code: 0,
  45. message: 'success',
  46. data: categories,
  47. };
  48. }
  49. catch (error) {
  50. ctx.body = {
  51. code: 400,
  52. message: error.message || '获取分类失败',
  53. };
  54. }
  55. });
  56. /**
  57. * 获取单个模板
  58. * GET /api/templates/:id
  59. */
  60. router.get('/:id', async (ctx) => {
  61. try {
  62. const { id } = ctx.params;
  63. const template = templates_service_1.templatesService.getTemplateById(parseInt(id));
  64. if (!template) {
  65. ctx.body = {
  66. code: 404,
  67. message: '模板不存在',
  68. };
  69. return;
  70. }
  71. ctx.body = {
  72. code: 0,
  73. message: 'success',
  74. data: template,
  75. };
  76. }
  77. catch (error) {
  78. ctx.body = {
  79. code: 400,
  80. message: error.message || '获取模板失败',
  81. };
  82. }
  83. });
  84. /**
  85. * 创建模板
  86. * POST /api/templates
  87. */
  88. router.post('/', async (ctx) => {
  89. try {
  90. const { name, category, content, description } = ctx.request.body;
  91. if (!name || !category || !content) {
  92. ctx.body = {
  93. code: 400,
  94. message: '缺少必填字段',
  95. };
  96. return;
  97. }
  98. const template = templates_service_1.templatesService.createTemplate({ name, category, content, description });
  99. ctx.body = {
  100. code: 0,
  101. message: 'success',
  102. data: template,
  103. };
  104. }
  105. catch (error) {
  106. ctx.body = {
  107. code: 400,
  108. message: error.message || '创建模板失败',
  109. };
  110. }
  111. });
  112. /**
  113. * 更新模板
  114. * PUT /api/templates/:id
  115. */
  116. router.put('/:id', async (ctx) => {
  117. try {
  118. const { id } = ctx.params;
  119. const { name, category, content, description } = ctx.request.body;
  120. const template = templates_service_1.templatesService.updateTemplate(parseInt(id), { name, category, content, description });
  121. if (!template) {
  122. ctx.body = {
  123. code: 404,
  124. message: '模板不存在',
  125. };
  126. return;
  127. }
  128. ctx.body = {
  129. code: 0,
  130. message: 'success',
  131. data: template,
  132. };
  133. }
  134. catch (error) {
  135. ctx.body = {
  136. code: 400,
  137. message: error.message || '更新模板失败',
  138. };
  139. }
  140. });
  141. /**
  142. * 删除模板
  143. * DELETE /api/templates/:id
  144. */
  145. router.delete('/:id', async (ctx) => {
  146. try {
  147. const { id } = ctx.params;
  148. const success = templates_service_1.templatesService.deleteTemplate(parseInt(id));
  149. if (!success) {
  150. ctx.body = {
  151. code: 404,
  152. message: '模板不存在',
  153. };
  154. return;
  155. }
  156. ctx.body = {
  157. code: 0,
  158. message: 'success',
  159. };
  160. }
  161. catch (error) {
  162. ctx.body = {
  163. code: 400,
  164. message: error.message || '删除模板失败',
  165. };
  166. }
  167. });
  168. exports.default = router;