partitions.controller.ts 1.4 KB

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