mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-27 09:34:49 +00:00
423 lines
10 KiB
TypeScript
423 lines
10 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Inject,
|
|
Param,
|
|
Post,
|
|
Query,
|
|
} from '@nestjs/common';
|
|
import { ApiTags } from '@nestjs/swagger';
|
|
import { AuthenticateCondition } from '../../authentication/authentication.decorator';
|
|
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
|
import { CatalogService } from './catalog.service';
|
|
import { DadosferaLogger } from '@dadosfera/dadosfera-logs';
|
|
|
|
@ApiTags('Catalog')
|
|
@Controller('catalog')
|
|
@AuthenticateCondition((req, user) => {
|
|
let action;
|
|
|
|
switch (req.method) {
|
|
case 'POST':
|
|
action = 'CREATE';
|
|
break;
|
|
|
|
case 'PUT':
|
|
action = 'UPDATE';
|
|
break;
|
|
|
|
default:
|
|
action = req.method;
|
|
}
|
|
|
|
return user.permissions.includes(
|
|
PERMISSIONS.CATALOG.permissions[action].seqid,
|
|
);
|
|
})
|
|
export class CatalogController {
|
|
logger: DadosferaLogger;
|
|
constructor(
|
|
@Inject(DadosferaLogger)
|
|
dadosferaLogger: DadosferaLogger,
|
|
private catalogService: CatalogService,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
}
|
|
|
|
@Get('all')
|
|
async catalogAll(@Body() body) {
|
|
this.logger.info(`/catalog - ON CATALOG ALL ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.catalogAll(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data_apps')
|
|
async dataAppsAll(@Body() body) {
|
|
this.logger.info(`/catalog - ON FIND ALL DATA APPS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.dataAppsAll(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Delete('data_apps/:id')
|
|
async dataAppsOne(@Param() params, @Body() body) {
|
|
this.logger.info(`/catalog - ON FIND ONE DATA APP ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
const { id } = params;
|
|
|
|
const res = await this.catalogService.dataAppsOne(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('dashboard-metabase')
|
|
async getAllDashboardMetabase(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET ALL DASHBOARDS METABASE ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getAllDashboardMetabase(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('dashboard-metabase/:id')
|
|
async getOneDashboardMetabase(@Body() body, @Param() params) {
|
|
const { id } = params;
|
|
this.logger.info(`/catalog - ON GET ONE DASHBOARD METABASE ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getOneDashboardMetabase(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('table-metadata')
|
|
async getAllTableMetadata(@Body() body, @Query() query) {
|
|
this.logger.info(`/catalog - ON GET ALL TABLES METADATA ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
if (!query) {
|
|
const res = await this.catalogService.getAllTableMetadata(body);
|
|
return res;
|
|
} else {
|
|
const res = await this.catalogService.getOneTableMetadata(body, query);
|
|
return res;
|
|
}
|
|
}
|
|
|
|
@Delete('table-metadata/:id')
|
|
async deleteOneTableMetadata(@Param() params, @Body() body) {
|
|
const { id } = params;
|
|
this.logger.info(`/catalog - ON DELETE ONE TABLE METADATA ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.deleteOneTableMetadata(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('column-metadata')
|
|
async getOneColumnMetadata(@Body() body, @Query() params) {
|
|
this.logger.info(`/catalog - ON GET ONE COLUMN METADATA ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getOneColumnMetadata(body, params);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Delete('column-metadata/:id')
|
|
async deleteOneColumnMetadata(@Param() params, @Body() body) {
|
|
this.logger.info(`/catalog - ON DELETE ONE COLUMN METADATA ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
const { id } = params;
|
|
|
|
const res = await this.catalogService.deleteOneColumnMetadata(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-preview')
|
|
async getOneDataPreview(@Body() body, @Query() params) {
|
|
this.logger.info(`/catalog - ON GET ONE DATAPREVIEW ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getOneDataPreview(body, params);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-status')
|
|
async getDataStatus(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA STATUS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataStatus(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-status')
|
|
async createDataStatus(@Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE DATA STATUS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createDataStatus(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-description')
|
|
async getDataDescription(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA DESCRIPTION ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataDescription(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('data-description')
|
|
async createDataDescription(@Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE DATA DESCRIPTION ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createDataDescription(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-docs')
|
|
async getDataDocs(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA DOCS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataDocs(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('data-docs')
|
|
async createDataDocs(@Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE DATA DOCS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createDataDocs(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-rating')
|
|
async getDataRating(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA RATING ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataRating(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('data-rating')
|
|
async createDataRating(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA RATING ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createDataRating(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('summary-rating/:id')
|
|
async getSummaryRating() {
|
|
this.logger.info(`/catalog - ON GET SUMMARY RATING ROUTE`);
|
|
//const { id } = params;
|
|
|
|
//
|
|
|
|
//const res = await this.catalogService.getSummaryRating(id, body);
|
|
|
|
return {
|
|
avg_rating: 0,
|
|
rating_count: 0,
|
|
};
|
|
}
|
|
|
|
@Get('data-comment')
|
|
async getDataComment(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA COMMENT ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataComment(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('data-comment')
|
|
async createDataComment(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET DATA COMMENT ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createDataComment(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('data-review')
|
|
async getDataReview(@Body() body, @Query() params) {
|
|
this.logger.info(`/catalog - ON GET DATA REVIEW ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getDataReview(body, params);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('tags')
|
|
async createTags(@Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE TAG ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createTags(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('tags')
|
|
async findAllTags(@Body() body) {
|
|
this.logger.info(`/catalog - ON FIND ALL TAGS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.findAllTags(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Delete('tags/:id')
|
|
async deleteTags(@Param() params, @Body() body) {
|
|
this.logger.info(`/catalog - ON DELETE TAG ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
const { id } = params;
|
|
|
|
const res = await this.catalogService.deleteTags(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Post('table-tags')
|
|
async createTableTags(@Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE TABLE TAG ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.createTableTags(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('table-tags')
|
|
async getAllTableTags(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET ALL TABLE TAGS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.findAllTableTags(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Delete('table-tags/:id')
|
|
async deleteTableTags(@Param() params, @Body() body) {
|
|
this.logger.info(`/catalog - ON CREATE TABLE TAGS ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
const { id } = params;
|
|
|
|
const res = await this.catalogService.deleteTableTags(id, body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Get('table-rules')
|
|
async getTableRules(@Body() body) {
|
|
this.logger.info(`/catalog - ON GET TABLE RULES ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
|
|
const res = await this.catalogService.getTableRules(body);
|
|
|
|
return res;
|
|
}
|
|
|
|
@Delete('table-rules/:id')
|
|
async deleteTableRules(@Param() params, @Body() body) {
|
|
this.logger.info(`/catalog - ON DELETE TABLE RULES ROUTE`, {
|
|
user: body.info.user_id,
|
|
customer: body.info.customer,
|
|
});
|
|
const { id } = params;
|
|
|
|
const res = await this.catalogService.deleteTableRules(id, body);
|
|
|
|
return res;
|
|
}
|
|
}
|