From 301ad369c09cecca7ba1115df6ac3907bbd4543d Mon Sep 17 00:00:00 2001 From: marcos-silva-rodrigues Date: Fri, 4 Apr 2025 18:25:48 -0300 Subject: [PATCH] FEAT: networks get endpoint --- package-lock.json | 8 ++++---- package.json | 2 +- .../network-policy/network-policy.controller.ts | 16 ++++++++++++++-- .../network-policy/network-policy.service.ts | 14 ++++++++++++++ 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31af08d..6b1c84e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@aws-sdk/client-secrets-manager": "^3.414.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "^3.37.0-beta.10 ", + "@dadosfera/protospack-v2": "3.37.0-alpha.20", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", @@ -1298,9 +1298,9 @@ } }, "node_modules/@dadosfera/protospack-v2": { - "version": "3.37.0-beta.10", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.37.0-beta.10.tgz", - "integrity": "sha512-nKSu9VpOPFSTeX0yN4aEY0HjvGxgbLPYXl217NHgLm+a/+i01USDaxjwIOqP5hhDvhnMNaiCq5awiQTYbhF/7A==", + "version": "3.37.0-alpha.20", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.37.0-alpha.20.tgz", + "integrity": "sha512-rs8YUgnwA8dTohzSEAeilU7WAscodf26/yrsqC/lq0Dz2s3Hi09TXItnLJ5ktv5xWaBQ/eZjyc5zPjpcWL3myQ==", "license": "ISC", "dependencies": { "@grpc/grpc-js": "^1.9.3", diff --git a/package.json b/package.json index 5a9463a..d2c3b74 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@aws-sdk/client-secrets-manager": "^3.414.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.4", "@dadosfera/protospack": "2.5.3", - "@dadosfera/protospack-v2": "^3.37.0-beta.10 ", + "@dadosfera/protospack-v2": "3.37.0-alpha.20", "@grpc/grpc-js": "^1.9.3", "@grpc/proto-loader": "^0.7.9", "@nestjs/cli": "^9.5.0", diff --git a/src/modules/network-policy/network-policy.controller.ts b/src/modules/network-policy/network-policy.controller.ts index 25f3074..8ae8371 100644 --- a/src/modules/network-policy/network-policy.controller.ts +++ b/src/modules/network-policy/network-policy.controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, HttpCode, HttpStatus, Post } from '@nestjs/common'; +import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Post } from '@nestjs/common'; import { ApiOkResponse } from '@nestjs/swagger'; import { PERMISSIONS_GROUPS } from 'src/authentication/permissions.enum'; import { @@ -14,11 +14,23 @@ import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; export class NetworkPolicyController { constructor(private networkPolicyService: NetworkPolicyService) {} + @Get() + @Authenticated() + @RequireAllPermissions(PERMISSIONS_GROUPS.USERS.permissions.ADMIN) + @HttpCode(HttpStatus.OK) + async getNetworks( + @User() user: RequestUser, + ) { + return await this.networkPolicyService.getByCustomer( + user.customer_id + ); + } + @Post() @Authenticated() @RequireAllPermissions(PERMISSIONS_GROUPS.USERS.permissions.ADMIN) @ApiOkResponse() - @HttpCode(HttpStatus.OK) + @HttpCode(HttpStatus.CREATED) async applyNetworkPolicies( @User() user: RequestUser, @Body() data: NetworkPoliciesDTO, diff --git a/src/modules/network-policy/network-policy.service.ts b/src/modules/network-policy/network-policy.service.ts index a411c77..ed39915 100644 --- a/src/modules/network-policy/network-policy.service.ts +++ b/src/modules/network-policy/network-policy.service.ts @@ -6,6 +6,8 @@ import { CustomersProtoService } from '@dadosfera/protospack-v2/dist/lib/Duc/int import { ProtoServices } from '@dadosfera/protospack-v2/dist/lib/Duc'; import { Metadata } from '@grpc/grpc-js'; import { lastValueFrom } from 'rxjs'; +import { NetworkPoliciesDTO } from './dto/network-policy.dto'; + @Injectable() export class NetworkPolicyService { @@ -26,6 +28,18 @@ export class NetworkPolicyService { ); } + async getByCustomer(id: string): Promise { + const { + customer + } = await lastValueFrom(this.customerService.CustomerFindOneById({ + id + })); + + return { + policies: customer.networkPolicies + } + } + async apply( networkPolicies: string[], customerId: string,