12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import {
- Body,
- Controller,
- Get,
- Post,
- Query,
- UsePipes,
- ValidationPipe,
- } from '@nestjs/common';
- import { ApiTags } from '@nestjs/swagger';
- import {
- DescribeIndex,
- GetIndexProgress,
- ManageIndex,
- ManageType,
- GetIndexState,
- } from './dto';
- import { SchemaService } from './schema.service';
- @ApiTags('schema')
- @Controller('schema')
- export class SchemaController {
- constructor(private schemaService: SchemaService) { }
- @Post('index')
- @UsePipes(new ValidationPipe())
- async manageIndex(@Body() body: ManageIndex) {
- const { type, collection_name, extra_params, field_name } = body;
- return type === ManageType.CREATE
- ? await this.schemaService.createIndex({
- collection_name,
- extra_params,
- field_name,
- })
- : await this.schemaService.dropIndex({ collection_name, field_name });
- }
- @Get('index')
- @UsePipes(new ValidationPipe())
- async describeIndex(@Query() query: DescribeIndex) {
- return await this.schemaService.describeIndex(query);
- }
- @Get('index/progress')
- @UsePipes(new ValidationPipe())
- async getIndexProgress(@Query() query: GetIndexProgress) {
- return await this.schemaService.getIndexBuildProgress(query);
- }
- @Get('index/state')
- @UsePipes(new ValidationPipe())
- async getIndexState(@Query() query: GetIndexState) {
- return await this.schemaService.getIndexState(query);
- }
- }
|