import { Controller, Get, Post, Put, Del, Body, Query, Inject, Param } from '@midwayjs/core'; import { CategoryService } from '../service/category.service'; import { successResponse, errorResponse } from '../utils/response.util'; import { ApiOkResponse } from '@midwayjs/swagger'; @Controller('/category') export class CategoryController { @Inject() categoryService: CategoryService; @ApiOkResponse() @Get('/all') async getAll() { try { const data = await this.categoryService.getAll(); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Get('/') async getList(@Query('current') current = 1, @Query('pageSize') pageSize = 10, @Query('name') name?: string) { try { const data = await this.categoryService.getList({ current, pageSize }, name); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Post('/') async create(@Body() body: any) { try { const data = await this.categoryService.create(body); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Put('/:id') async update(@Param('id') id: number, @Body() body: any) { try { const data = await this.categoryService.update(id, body); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Del('/:id') async delete(@Param('id') id: number) { try { await this.categoryService.delete(id); return successResponse(null); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Get('/attribute/:categoryId') async getCategoryAttributes(@Param('categoryId') categoryId: number) { try { const data = await this.categoryService.getCategoryAttributes(categoryId); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Post('/attribute') async createCategoryAttribute(@Body() body: { categoryId: number, attributeDictIds: number[] }) { try { const data = await this.categoryService.createCategoryAttribute(body.categoryId, body.attributeDictIds); return successResponse(data); } catch (error) { return errorResponse(error?.message || error); } } @ApiOkResponse() @Del('/attribute/:id') async deleteCategoryAttribute(@Param('id') id: number) { try { await this.categoryService.deleteCategoryAttribute(id); return successResponse(null); } catch (error) { return errorResponse(error?.message || error); } } }