FIX: Connection and Network Flows (Create and Delete)

This commit is contained in:
Victor Radael
2022-08-17 15:58:00 -03:00
parent 6807b3e1a9
commit a9f68b87ca
6 changed files with 59 additions and 64 deletions
+7 -7
View File
@@ -11,7 +11,7 @@
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.112.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.3",
"@dadosfera/protospack-v2": "3.12.0",
"@dadosfera/protospack-v2": "3.12.1",
"@grpc/grpc-js": "^1.6.7",
"@grpc/proto-loader": "^0.6.13",
"@nestjs/common": "^8.4.7",
@@ -1725,9 +1725,9 @@
}
},
"node_modules/@dadosfera/protospack-v2": {
"version": "3.12.0",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.12.0.tgz",
"integrity": "sha512-BJNmVC+bjO+ICc13VWllmzAMqqI4/1x6H2LxXaVyi65rmn6FNHMNj6aC/WMlko17II/X2Ih40QdrrQ5io019mg==",
"version": "3.12.1",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.12.1.tgz",
"integrity": "sha512-hk+63FkmqwQonOtBUSAQfdRt4H638DxTsP95tD2r5D1YxKD6Wyrxg1+TRgUHhIneXNySGORG5jS4O6vA5+tYTw==",
"dependencies": {
"@grpc/grpc-js": "^1.6.7",
"rxjs": "^7.5.5",
@@ -12283,9 +12283,9 @@
}
},
"@dadosfera/protospack-v2": {
"version": "3.12.0",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.12.0.tgz",
"integrity": "sha512-BJNmVC+bjO+ICc13VWllmzAMqqI4/1x6H2LxXaVyi65rmn6FNHMNj6aC/WMlko17II/X2Ih40QdrrQ5io019mg==",
"version": "3.12.1",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.12.1.tgz",
"integrity": "sha512-hk+63FkmqwQonOtBUSAQfdRt4H638DxTsP95tD2r5D1YxKD6Wyrxg1+TRgUHhIneXNySGORG5jS4O6vA5+tYTw==",
"requires": {
"@grpc/grpc-js": "^1.6.7",
"rxjs": "^7.5.5",
+1 -1
View File
@@ -26,7 +26,7 @@
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.112.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.3",
"@dadosfera/protospack-v2": "3.12.0",
"@dadosfera/protospack-v2": "3.12.1",
"@grpc/grpc-js": "^1.6.7",
"@grpc/proto-loader": "^0.6.13",
"@nestjs/common": "^8.4.7",
+4 -4
View File
@@ -43,11 +43,11 @@ async function bootstrap() {
await writeFileSync('swagger.json', JSON.stringify(document));
if (process.env.ENV != 'stg' && process.env.ENV != 'prd')
SwaggerModule.setup('api', app, document);
// if (process.env.ENV != 'stg' && process.env.ENV != 'prd')
SwaggerModule.setup('api', app, document);
const swaggerDoc = process.env.ENV === 'dev' ? document : documentEmpty;
SwaggerModule.setup('api', app, swaggerDoc);
// const swaggerDoc = process.env.ENV === 'dev' ? document : documentEmpty;
// SwaggerModule.setup('api', app, swaggerDoc);
await app.listen(3333);
}
@@ -2,12 +2,7 @@ import {
NetworkConfigEntity,
NetworkConfigToCatalog,
} from '@dadosfera/protospack-v2/dist/lib/NetworkConfig/interfaces/entities';
import {
ApiProperty,
ApiPropertyOptional,
OmitType,
PickType,
} from '@nestjs/swagger';
import { ApiProperty, ApiPropertyOptional, PickType } from '@nestjs/swagger';
export enum NetworkConfigTypesEnum {
vpn = 'vpn',
@@ -19,37 +14,48 @@ export class NetworkConfigDto implements NetworkConfigEntity {
@ApiProperty()
id: string;
@ApiProperty()
name: string;
created_at: string;
@ApiProperty()
updated_at: string;
@ApiProperty()
customer_name: string;
@ApiProperty()
description: string;
customer_id: string;
@ApiProperty()
properties: any;
@ApiProperty()
user_id: string;
@ApiProperty()
keywords: string;
@ApiProperty()
tags: string;
@ApiProperty()
network_type_id: string;
@ApiProperty()
network_type_name: string;
@ApiProperty({ enum: NetworkConfigTypesEnum })
type: string;
@ApiProperty({ enum: NetworkConfigPluginsEnum })
plugin: string;
@ApiProperty()
properties: any;
name: string;
@ApiProperty()
created_at: string;
@ApiProperty()
updated_at: string;
@ApiProperty()
network_type_id: string;
@ApiProperty()
network_type_name: string;
@ApiProperty()
user_id: string;
@ApiProperty()
customer_id: string;
@ApiProperty()
keywords: string;
@ApiProperty()
tags: string;
description: string;
}
export class NetworkConfigNoSecrets extends OmitType(NetworkConfigDto, [
'properties',
]) {}
export class CreateNetworkConfigReq extends PickType(NetworkConfigDto, [
'network_type_id',
'network_type_name',
'name',
'description',
'type',
'plugin',
]) {
@ApiProperty({ format: 'binary' })
ovpn_file: string;
}
export class NetworkConfigOpenVpnProperties {
@ApiProperty({ enum: NetworkConfigPluginsEnum })
plugin: NetworkConfigPluginsEnum;
@@ -122,24 +128,7 @@ export class FindNetworkConfigByidDetailsRes {
@ApiProperty()
network_config: FindNetworkConfigByidDetails;
}
export class CreateNetworkConfigReq extends PickType(NetworkConfigDto, [
'name',
'description',
'type',
'network_type_id',
'plugin',
]) {
@ApiProperty({
type: 'file',
properties: {
file: {
type: 'string',
format: 'binary',
},
},
})
OVPN_FILE: any;
}
export class CreateNetworkConfigRes {
@ApiProperty()
network_config: NetworkConfigToCatalogDto;
@@ -91,19 +91,21 @@ export class NetworkConfigController {
@Post()
@ApiOkResponse({ type: CreateNetworkConfigRes })
@ApiConsumes('multipart/form-data')
@UseInterceptors(FileInterceptor('OVPN_FILE'))
@UseInterceptors(FileInterceptor('ovpn_file'))
async createNetworkConfigs(
@User() user: RequestUser,
@Body() body: CreateNetworkConfigReq,
@UploadedFile() file: Express.Multer.File,
@Body() body: CreateNetworkConfigReq,
) {
this.logger.info('POST /network-config', {
user: user.user_id,
customer: user.customer_name,
});
const { customer_id, customer_name, user_id } = user;
return this.networkConfigService.createNetworkConfig(body, file, {
customer_name: user.customer_name,
customer_id: user.customer_id,
customer_name,
customer_id,
user_id,
});
}
@@ -91,9 +91,9 @@ export class NetworkConfigService {
async createNetworkConfig(
body: CreateNetworkConfigReq,
file: Express.Multer.File,
{ customer_name, customer_id },
{ customer_name, customer_id, user_id },
): Promise<CreateNetworkConfigRes> {
const { description, name, network_type_id } = body;
const { description, name, network_type_id, network_type_name } = body;
let { type, plugin } = body;
type = type || 'vpn';
@@ -102,12 +102,14 @@ export class NetworkConfigService {
const OVPN_FILE_STRING = Buffer.from(file.buffer).toString();
const meta = new Metadata();
meta.add('customer_id', customer_id);
meta.add('customer_name', customer_name);
meta.add('user_id', user_id);
const { network_config } = await lastValueFrom(
this.networkConfigWriteClient.NetworkConfigCreate(
{
customer_name,
description,
name,
properties: JSON.stringify({
@@ -116,6 +118,8 @@ export class NetworkConfigService {
}),
type,
network_type_id,
network_type_name,
plugin,
},
meta,
),