byName.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { defineEventHandler, EventHandlerRequest } from 'h3';
  2. import { DB } from '~~/server/db/DB';
  3. import { createErrorResponse, createSuccessResponse, IResponse } from '~~/server/utils/response';
  4. import type { IChannel } from './[id]';
  5. export default defineEventHandler<EventHandlerRequest, Promise<IResponse<IChannel & {
  6. childs: IChannel[];
  7. }>>>(async (event) => {
  8. try {
  9. const query = getQuery(event);
  10. const name = query.name as string;
  11. if (!name)
  12. return createErrorResponse('分类名称不能为空');
  13. const category = await DB.table('pr_cms_channel')
  14. .where('name', name)
  15. .where('status', 'normal')
  16. .first();
  17. if (!category)
  18. return createErrorResponse('分类不存在');
  19. const childs = await DB.table('pr_cms_channel')
  20. .where('status', 'normal')
  21. .where('parent_id', category.id)
  22. .orderBy('weigh', 'desc')
  23. .orderBy('id', 'desc')
  24. .get();
  25. category.childs = childs;
  26. return createSuccessResponse(category);
  27. } catch (error) {
  28. return createErrorResponse(error);
  29. }
  30. });