mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-06 22:54:48 +00:00
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
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 {
|
|
Authenticated,
|
|
RequireAllPermissions,
|
|
} from 'src/decorators/authentication.decorator';
|
|
import { NetworkPoliciesDTO } from './dto/network-policy.dto';
|
|
import { RequestUser, User } from 'src/decorators/user.decorator';
|
|
import { NetworkPolicyService } from './network-policy.service';
|
|
import { PackTheMetadata } from 'src/utils/PackTheMetadata';
|
|
|
|
@Controller('network-policy')
|
|
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.CREATED)
|
|
async applyNetworkPolicies(
|
|
@User() user: RequestUser,
|
|
@Body() data: NetworkPoliciesDTO,
|
|
) {
|
|
const metadata = PackTheMetadata(user);
|
|
|
|
return await this.networkPolicyService.apply(
|
|
data.policies,
|
|
user.customer_id,
|
|
metadata,
|
|
);
|
|
}
|
|
|
|
@Delete()
|
|
@Authenticated()
|
|
@RequireAllPermissions(PERMISSIONS_GROUPS.USERS.permissions.ADMIN)
|
|
@ApiOkResponse()
|
|
@HttpCode(HttpStatus.OK)
|
|
async removeNetworkPolicies(
|
|
@User() user: RequestUser,
|
|
@Body() data: NetworkPoliciesDTO,
|
|
) {
|
|
const metadata = PackTheMetadata(user);
|
|
|
|
return await this.networkPolicyService.delete(
|
|
data.policies,
|
|
user.customer_id,
|
|
metadata,
|
|
);
|
|
}
|
|
}
|