bgm.controller.js 4.0 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 bgm_service_1 = require("./bgm.service");
  8. const router = new router_1.default();
  9. /**
  10. * 获取背景音乐列表
  11. * GET /api/bgm
  12. */
  13. router.get('/', async (ctx) => {
  14. try {
  15. const { mood } = ctx.query;
  16. let bgmList;
  17. if (mood) {
  18. bgmList = bgm_service_1.bgmService.getBgmByMood(mood);
  19. }
  20. else {
  21. bgmList = bgm_service_1.bgmService.getBgmList();
  22. }
  23. ctx.body = {
  24. code: 0,
  25. message: 'success',
  26. data: bgmList,
  27. };
  28. }
  29. catch (error) {
  30. ctx.body = {
  31. code: 400,
  32. message: error.message || '获取背景音乐列表失败',
  33. };
  34. }
  35. });
  36. /**
  37. * 获取所有风格
  38. * GET /api/bgm/moods
  39. */
  40. router.get('/moods', async (ctx) => {
  41. try {
  42. const moods = bgm_service_1.bgmService.getMoods();
  43. ctx.body = {
  44. code: 0,
  45. message: 'success',
  46. data: moods,
  47. };
  48. }
  49. catch (error) {
  50. ctx.body = {
  51. code: 400,
  52. message: error.message || '获取风格列表失败',
  53. };
  54. }
  55. });
  56. /**
  57. * 获取单个背景音乐
  58. * GET /api/bgm/:id
  59. */
  60. router.get('/:id', async (ctx) => {
  61. try {
  62. const { id } = ctx.params;
  63. const bgm = bgm_service_1.bgmService.getBgmById(parseInt(id));
  64. if (!bgm) {
  65. ctx.body = {
  66. code: 404,
  67. message: '背景音乐不存在',
  68. };
  69. return;
  70. }
  71. ctx.body = {
  72. code: 0,
  73. message: 'success',
  74. data: bgm,
  75. };
  76. }
  77. catch (error) {
  78. ctx.body = {
  79. code: 400,
  80. message: error.message || '获取背景音乐失败',
  81. };
  82. }
  83. });
  84. /**
  85. * 添加背景音乐
  86. * POST /api/bgm
  87. */
  88. router.post('/', async (ctx) => {
  89. try {
  90. const { name, url, mood, duration } = ctx.request.body;
  91. if (!name || !url || !mood || !duration) {
  92. ctx.body = {
  93. code: 400,
  94. message: '缺少必填字段',
  95. };
  96. return;
  97. }
  98. const bgm = bgm_service_1.bgmService.addBgm({ name, url, mood, duration });
  99. ctx.body = {
  100. code: 0,
  101. message: 'success',
  102. data: bgm,
  103. };
  104. }
  105. catch (error) {
  106. ctx.body = {
  107. code: 400,
  108. message: error.message || '添加背景音乐失败',
  109. };
  110. }
  111. });
  112. /**
  113. * 更新背景音乐
  114. * PUT /api/bgm/:id
  115. */
  116. router.put('/:id', async (ctx) => {
  117. try {
  118. const { id } = ctx.params;
  119. const { name, url, mood, duration, size } = ctx.request.body;
  120. const bgm = bgm_service_1.bgmService.updateBgm(parseInt(id), { name, url, mood, duration, size });
  121. if (!bgm) {
  122. ctx.body = {
  123. code: 404,
  124. message: '背景音乐不存在',
  125. };
  126. return;
  127. }
  128. ctx.body = {
  129. code: 0,
  130. message: 'success',
  131. data: bgm,
  132. };
  133. }
  134. catch (error) {
  135. ctx.body = {
  136. code: 400,
  137. message: error.message || '更新背景音乐失败',
  138. };
  139. }
  140. });
  141. /**
  142. * 删除背景音乐
  143. * DELETE /api/bgm/:id
  144. */
  145. router.delete('/:id', async (ctx) => {
  146. try {
  147. const { id } = ctx.params;
  148. const success = bgm_service_1.bgmService.deleteBgm(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;