partitions.controller.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {
  2. Body,
  3. Controller,
  4. Get,
  5. Post,
  6. Put,
  7. Query,
  8. UsePipes,
  9. ValidationPipe,
  10. } from '@nestjs/common';
  11. import { ApiTags } from '@nestjs/swagger';
  12. import {
  13. GetPartitionsInfo,
  14. LoadPartitions,
  15. ManagePartition,
  16. ManageType,
  17. } from './dto';
  18. import { PartitionsService } from './partitions.service';
  19. @ApiTags('partitions')
  20. @Controller('partitions')
  21. export class PartitionsController {
  22. constructor(private partitionsService: PartitionsService) {}
  23. @Get()
  24. @UsePipes(new ValidationPipe())
  25. async getPartitions(@Query() query: GetPartitionsInfo) {
  26. return await this.partitionsService.getPartitionsInfo(query);
  27. }
  28. @Post()
  29. @UsePipes(new ValidationPipe())
  30. async managePartition(@Body() body: ManagePartition) {
  31. const { type, ...params } = body;
  32. return type.toLocaleLowerCase() === ManageType.CREATE
  33. ? await this.partitionsService.createPartition(params)
  34. : await this.partitionsService.deletePartition(params);
  35. }
  36. @Put('load')
  37. @UsePipes(new ValidationPipe())
  38. async loadPartition(@Body() body: LoadPartitions) {
  39. return await this.partitionsService.loadPartitions(body);
  40. }
  41. @Put('release')
  42. @UsePipes(new ValidationPipe())
  43. async releasePartitions(@Body() body: LoadPartitions) {
  44. return await this.partitionsService.loadPartitions(body);
  45. }
  46. }