Merge branch 'main' into feat/rest-api

This commit is contained in:
Gabriel Rosa
2022-11-09 15:03:09 -03:00
7 changed files with 126 additions and 21 deletions
+21
View File
@@ -25,6 +25,7 @@ import { RequestUser, User } from 'src/authentication/user.decorator';
import {
ICatalogAllResponse,
IColumnsMetadataResponse,
ICreateDataAsset,
IDeleteComment,
IDocsResponse,
IMakeAComment,
@@ -438,6 +439,26 @@ export class CatalogController {
return { message: response.message };
}
@Post()
async createDataAsset(
@User() user: RequestUser,
@Body() body: ICreateDataAsset,
) {
const { customer_id, customer_name, user_id, username } = user;
const metadata = PackTheMetadata({
customer_id,
customer_name,
user_id,
username,
});
const { data_asset } = await this.catalogService.createDataAsset(
body,
metadata,
);
return { data_asset: JSON.parse(data_asset) };
}
@Post('data-asset/:id/comment')
async commentOnDataAsset(
@Param('id') id: string,
+14 -1
View File
@@ -58,6 +58,19 @@ class CatalogService implements OnModuleInit {
)}.dadosfera.ai`;
}
async createDataAsset(data: Messages.CreateDataAssetRequest, metadata) {
this.logger.info('CatalogService - Manage Data assets permissions');
return lastValueFrom(
this.catalogWriteService.CreateDataAsset(data, metadata),
).catch((err) => {
throw new HttpException(
err.details,
err.code === 6 ? HttpStatus.CONFLICT : 404,
);
});
}
async managePermissions(data: Messages.ManagePermissionRequest, metadata) {
this.logger.info('CatalogService - Manage Data assets permissions');
@@ -275,7 +288,7 @@ class CatalogService implements OnModuleInit {
async updateOneDataAsset({ data_asset_id, customer_id, body, metadata }) {
const { data_asset } = await lastValueFrom(
this.catalogWriteService.UpdateDataAsset(
{ id: data_asset_id, ...body },
{ id: data_asset_id, changes: JSON.stringify(body) },
metadata,
),
);
+14
View File
@@ -1,4 +1,5 @@
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { CreateDataAssetRequest } from '@dadosfera/protospack-v2/dist/lib/Catalog/interfaces/messages';
export class IRole {
@ApiProperty()
@@ -128,6 +129,19 @@ export class IUpdateDataRequest {
tags: string[];
}
export class ICreateDataAsset implements CreateDataAssetRequest {
@ApiProperty()
display_name: string;
@ApiProperty()
description: string;
@ApiProperty()
data_asset_type: string;
@ApiProperty()
external_url: string;
@ApiProperty()
location: string;
}
export class IPreview {
@ApiProperty()
id: string;