mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-15 08:39:09 +00:00
FEAT: rls rules routes
This commit is contained in:
@@ -31,6 +31,7 @@ import { DadosferaLogger } from '@dadosfera/dadosfera-logs';
|
||||
import { PackTheMetadata } from 'src/utils/ PackTheMetadata';
|
||||
import { RequestUser, User } from 'src/decorators/user.decorator';
|
||||
import {
|
||||
BatchRemoveRlsRulesRequest,
|
||||
GetDatasetCatalogTaskRes,
|
||||
ICatalogAllRequest,
|
||||
ICatalogAllResponse,
|
||||
@@ -49,6 +50,11 @@ import { GrpcToHttpExceptionFilter } from 'src/error/grpc-to-http-exception.filt
|
||||
import { Language } from 'src/decorators/language.decorator';
|
||||
import { LanguageEnum } from 'src/utils/languages.enum';
|
||||
import { ApiInternalOnlyEndpoint } from 'src/decorators/swagger.decorator';
|
||||
import {
|
||||
AddRlsRuleRequest,
|
||||
GetNimbusDashboardsRequest,
|
||||
GetRlsRulesRequest,
|
||||
} from '@dadosfera/protospack-v2/dist/lib/Catalog/interfaces/messages';
|
||||
|
||||
@ApiTags('Catalog')
|
||||
@ApiHeaders([{ name: 'dadosfera-lang', enum: LanguageEnum, required: false }])
|
||||
@@ -635,8 +641,8 @@ export class CatalogController {
|
||||
}
|
||||
|
||||
@Post('rls-rule')
|
||||
@ApiOkResponse({ type: GetDatasetCatalogTaskRes })
|
||||
async addRlsRule(@User() user: RequestUser, @Body() body) {
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async addRlsRule(@User() user: RequestUser, @Body() body: AddRlsRuleRequest) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
@@ -644,9 +650,97 @@ export class CatalogController {
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
console.log(body);
|
||||
const response = await this.catalogService.addRlsRule(body, metadata);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@Get('rls-rule/:id')
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async getOneRlsRule(@Param('id') id: string, @User() user: RequestUser) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
customer_name,
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
const idInt = parseInt(id);
|
||||
const response = await this.catalogService.getOneRlsRule(idInt, metadata);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@Get('rls-rule')
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async getRlsRules(
|
||||
@User() user: RequestUser,
|
||||
@Query() query: GetRlsRulesRequest,
|
||||
) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
customer_name,
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
const response = await this.catalogService.getRlsRules(query, metadata);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@Delete('rls-rule/:id')
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async removeRlsRule(@Param('id') id: string, @User() user: RequestUser) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
customer_name,
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
const idInt = parseInt(id);
|
||||
const response = await this.catalogService.removeRlsRule(idInt, metadata);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@Delete('rls-rule')
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async batchRemoveRlsRules(
|
||||
@Query() query: BatchRemoveRlsRulesRequest,
|
||||
@User() user: RequestUser,
|
||||
) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
customer_name,
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
await this.catalogService.batchRemoveRlsRule(query, metadata);
|
||||
|
||||
return { message: 'OK' };
|
||||
}
|
||||
|
||||
@Get('nimbus-dashboards')
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER)
|
||||
async getNimbusDashboards(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: GetNimbusDashboardsRequest,
|
||||
) {
|
||||
const { customer_id, customer_name, user_id, username } = user;
|
||||
const metadata = PackTheMetadata({
|
||||
customer_id,
|
||||
customer_name,
|
||||
user_id,
|
||||
username,
|
||||
});
|
||||
const dashboards = await this.catalogService.getNimbusDashboards(
|
||||
body,
|
||||
metadata,
|
||||
);
|
||||
|
||||
return JSON.parse(dashboards);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user