import { Controller, Get, Inject, Query, Post, Del, Param, Files, Fields, Body } from '@midwayjs/core'; import { WPService } from '../service/wp.service'; import { successResponse, errorResponse } from '../utils/response.util'; @Controller('/media') export class MediaController { @Inject() wpService: WPService; @Get('/list') async list( @Query('siteId') siteId: number, @Query('page') page: number = 1, @Query('pageSize') pageSize: number = 20 ) { try { if (!siteId) { return errorResponse('siteId is required'); } const result = await this.wpService.getMedia(siteId, page, pageSize); return successResponse(result); } catch (error) { return errorResponse(error.message); } } @Post('/upload') async upload(@Fields() fields, @Files() files) { try { const siteId = fields.siteId; if (!siteId) { return errorResponse('siteId is required'); } if (!files || files.length === 0) { return errorResponse('file is required'); } const file = files[0]; const result = await this.wpService.createMedia(siteId, file); return successResponse(result); } catch (error) { return errorResponse(error.message); } } @Post('/update/:id') async update(@Param('id') id: number, @Body() body) { try { const siteId = body.siteId; if (!siteId) { return errorResponse('siteId is required'); } // 过滤出需要更新的字段 const { title, caption, description, alt_text } = body; const data: any = {}; if (title !== undefined) data.title = title; if (caption !== undefined) data.caption = caption; if (description !== undefined) data.description = description; if (alt_text !== undefined) data.alt_text = alt_text; const result = await this.wpService.updateMedia(siteId, id, data); return successResponse(result); } catch (error) { return errorResponse(error.message); } } @Del('/:id') async delete(@Param('id') id: number, @Query('siteId') siteId: number, @Query('force') force: boolean = true) { try { if (!siteId) { return errorResponse('siteId is required'); } const result = await this.wpService.deleteMedia(siteId, id, force); return successResponse(result); } catch (error) { return errorResponse(error.message); } } }