forked from yoone/API
1
0
Fork 0
API/src/controller/category.controller.ts

99 lines
2.7 KiB
TypeScript

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);
}
}
}