import { Controller, Get, Post, Put, Del, Inject, Query, Body, Param } from "@midwayjs/core"; import { Context } from "@midwayjs/koa"; import { RoleService } from "../service/role.service"; @Controller("/api/roles") export class RoleController { @Inject() ctx!: Context; @Inject() roleService!: RoleService; @Get("/") async list(@Query() query: { page?: number; pageSize?: number; keyword?: string }) { const result = await this.roleService.list(query); return result; } @Get("/all") async getAllRoles() { const result = await this.roleService.getAllRoles(); return result; } @Get("/:id") async detail(@Param("id") id: string) { const result = await this.roleService.detail(id); return result; } @Post("/") async create(@Body() body: any) { const result = await this.roleService.create(body); return result; } @Put("/:id") async update(@Param("id") id: string, @Body() body: any) { const result = await this.roleService.update(id, body); return result; } @Del("/:id") async delete(@Param("id") id: string) { const result = await this.roleService.delete(id); return result; } @Get("/:id/menus") async getMenus(@Param("id") id: string) { const result = await this.roleService.getMenus(Number(id)); return result; } @Put("/:id/menus") async updateMenus(@Param("id") id: string, @Body() body: { menuIds: number[] }) { const result = await this.roleService.updateMenus(Number(id), body.menuIds); return result; } }