diff --git a/docsfera.json b/docsfera.json index c789236..6225efb 100644 --- a/docsfera.json +++ b/docsfera.json @@ -7275,37 +7275,10 @@ ] } }, - "/platform/pipelines/catalog/tables": { - "get": { - "operationId": "PlatformApiController_getAvailableTables", - "summary": "Get all tables available", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - } - }, - "tags": [ - "Platform API" - ], - "security": [ - { - "access-token": [] - } - ] - } - }, "/platform/pipelines/catalog/schemas": { "get": { "operationId": "PlatformApiController_getAvailableSchemas", - "summary": "Get all schemas available", + "summary": "Get available schemas", "parameters": [], "responses": { "200": { @@ -7332,17 +7305,14 @@ "/platform/pipelines/catalog/tables/validate": { "post": { "operationId": "PlatformApiController_validateTableAndSchema", - "summary": "Validate tables and schemas", + "summary": "Validate Table and Schema", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/ValidationTableDTO" } } } @@ -11545,6 +11515,20 @@ "required": [ "providers" ] + }, + "ValidationTableDTO": { + "type": "object", + "properties": { + "tables": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tables" + ] } } } diff --git a/src/modules/platform-api/platform-api.controller.ts b/src/modules/platform-api/platform-api.controller.ts index 978f464..d8d5698 100644 --- a/src/modules/platform-api/platform-api.controller.ts +++ b/src/modules/platform-api/platform-api.controller.ts @@ -25,6 +25,7 @@ import { ElasticsearchService } from '../../services/elasticsearch'; import { DynamoDBService, ReferenceColumn } from '../../services/dynamodb'; import { CustomersService } from '../customers/customers.service'; import { validateCronAgainstScheduleLimit } from '../../utils/cron-validation'; +import { ValidationTableDTO } from './platform-api.dto'; type ValidateTablesDTO = { @@ -728,26 +729,10 @@ export class PlatformApiController { ); } - // ==================== Catalog ROUTES ==================== - - @Get('pipelines/catalog/tables') - @ApiOperation({ summary: 'Get all tables available' }) - @RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.GET) - async getAvailableTables( - @User() user: RequestUser, - @Query() query: Record, - ) { - return this.platformApiService.proxy( - 'GET', - '/catalog/tables', - user, - undefined, - query, - ); - } + // ==================== PIPELINE VALIDATION ==================== @Get('pipelines/catalog/schemas') - @ApiOperation({ summary: 'Get all schemas available' }) + @ApiOperation({ summary: 'Get available schemas' }) @RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.GET) async getAvailableSchemas( @User() user: RequestUser, @@ -755,7 +740,7 @@ export class PlatformApiController { ) { return this.platformApiService.proxy( 'GET', - '/catalog/schemas', + `/catalog/schemas`, user, undefined, query, @@ -763,18 +748,18 @@ export class PlatformApiController { } @Post('pipelines/catalog/tables/validate') - @ApiOperation({ summary: 'Validate tables and schemas' }) - @RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.UPDATE) + @ApiOperation({ summary: 'Validate Table and Schema' }) + @RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.GET) async validateTableAndSchema( + @Body() payload: ValidationTableDTO, @User() user: RequestUser, @Query() query: Record, - @Body() validateTablesDto: ValidateTablesDTO[] ) { return this.platformApiService.proxy( 'POST', - '/catalog/tables/validate', + `/catalog/tables/validate`, user, - validateTablesDto, + payload, query, ); } diff --git a/src/modules/platform-api/platform-api.dto.ts b/src/modules/platform-api/platform-api.dto.ts new file mode 100644 index 0000000..3f6b89f --- /dev/null +++ b/src/modules/platform-api/platform-api.dto.ts @@ -0,0 +1,9 @@ +import { ApiProperty } from "@nestjs/swagger"; + +export class ValidationTableDTO { + @ApiProperty() + tables: Array<{ + table_name: string; + table_schema: string; + }> +} \ No newline at end of file