role.controller.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { Body, Controller, Del, Get, Inject, Param, Post, Query } from '@midwayjs/decorator';
  2. import { BaseController } from 'free-midway-component';
  3. import { RoleService } from '../../service/system/role.service';
  4. import { CDTO_role, CVO_role, FVO_role, QDTO_role, QVO_role, UDTO_role, UVAO_role } from '../../interface/system/role.interface';
  5. import { ApiResponse, ApiTags, ApiQuery } from '@midwayjs/swagger';
  6. import { Validate } from '@midwayjs/validate';
  7. import { MenusService } from '../../service/system/menus.service';
  8. import { verifyToken } from '../../decorator/verifyToken.decorator';
  9. import { checkPermissionCode } from '../../decorator/checkPermissionCode';
  10. import { dataRecord } from '../../decorator/dataRecord';
  11. @ApiTags(['角色表'])
  12. @Controller('/role')
  13. export class RoleController extends BaseController {
  14. @Inject()
  15. service: RoleService;
  16. @Inject()
  17. menusService: MenusService;
  18. @Post('/')
  19. @verifyToken()
  20. @Validate()
  21. @ApiResponse({ type: CVO_role })
  22. @dataRecord()
  23. async create(@Body() data: CDTO_role) {
  24. const dbData = await this.service.create(data);
  25. const result = new CVO_role(dbData);
  26. return result;
  27. }
  28. @Get('/')
  29. @verifyToken()
  30. @checkPermissionCode({ roleCode: 'system_role' })
  31. @ApiQuery({ name: 'query' })
  32. @ApiResponse({ type: QVO_role })
  33. async query(@Query() filter: QDTO_role, @Query('skip') skip: number, @Query('limit') limit: number) {
  34. const list = await this.service.query(filter, { skip, limit });
  35. const data = [];
  36. for (const i of list) {
  37. const newData = new QVO_role(i);
  38. data.push(newData);
  39. }
  40. const total = await this.service.count(filter);
  41. return { data, total };
  42. }
  43. @Get('/:id')
  44. @verifyToken()
  45. @ApiResponse({ type: FVO_role })
  46. async fetch(@Param('id') id: string) {
  47. const data = await this.service.fetch(id);
  48. const result = new FVO_role(data);
  49. return result;
  50. }
  51. @Post('/:id')
  52. @verifyToken()
  53. @checkPermissionCode({ roleCode: 'system_role.update' })
  54. @Validate()
  55. @ApiResponse({ type: UVAO_role })
  56. @dataRecord()
  57. async update(@Param('id') id: string, @Body() body: UDTO_role) {
  58. const result = await this.service.updateOne(id, body);
  59. return result;
  60. }
  61. @Del('/:id')
  62. @verifyToken()
  63. @Validate()
  64. @dataRecord()
  65. async delete(@Param('id') id: string) {
  66. await this.service.delete(id);
  67. return 'ok';
  68. }
  69. async createMany(...args: any[]) {
  70. throw new Error('Method not implemented.');
  71. }
  72. async updateMany(...args: any[]) {
  73. throw new Error('Method not implemented.');
  74. }
  75. async deleteMany(...args: any[]) {
  76. throw new Error('Method not implemented.');
  77. }
  78. }