carousel.ts 843 B

123456789101112131415161718192021222324252627282930
  1. import { defineEventHandler, EventHandlerRequest } from 'h3';
  2. import { DB } from '~~/server/db/DB';
  3. import { createErrorResponse, createSuccessResponse, IResponse } from '~~/server/utils/response';
  4. export interface ICarousel {
  5. id: number;
  6. name: string;
  7. status: string;
  8. type: string;
  9. title: string;
  10. image: string;
  11. url: string;
  12. weigh: number;
  13. content: string;
  14. }
  15. export default defineEventHandler<EventHandlerRequest, Promise<IResponse<ICarousel[]>>>(async (event) => {
  16. try {
  17. const query = getQuery(event);
  18. const name = query.name as string || 'banner';
  19. return createSuccessResponse(await DB.table('pr_cms_block')
  20. .where('name', name)
  21. .where('status', 'normal')
  22. .orderBy('weigh', 'desc')
  23. .get());
  24. } catch (error) {
  25. return createErrorResponse(error);
  26. }
  27. });