forked from yoone/API
99 lines
2.7 KiB
TypeScript
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);
|
|
}
|
|
}
|
|
}
|