Files
lisglosips/apps/api/src/modules/customer-gateway-policies/customer-gateway-policies.controller.ts
T

46 lines
2.4 KiB
TypeScript

import { Body, Controller, Delete, Get, Inject, Param, Patch, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { AuditAction } from '../audit/audit.metadata.js';
import { CurrentUserParam, RequirePermissions, type CurrentUser } from '../security/security.metadata.js';
import { CustomerGatewayPoliciesService } from './customer-gateway-policies.service.js';
@ApiTags('customer-gateway-policies')
@Controller()
export class CustomerGatewayPoliciesController {
constructor(@Inject(CustomerGatewayPoliciesService) private readonly policiesService: CustomerGatewayPoliciesService) {}
@Get('customer-gateways/:id/policies')
@RequirePermissions('customer_gateways.view')
list(@Param('id') gatewayId: string) {
return this.policiesService.list(gatewayId);
}
@Post('customer-gateways/:id/policies')
@RequirePermissions('customer_gateways.manage')
@AuditAction({ module: 'customer_gateways', action: 'policy_create', objectType: 'customer_gateway', objectIdParam: 'id' })
create(@Param('id') gatewayId: string, @Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.policiesService.create(gatewayId, body as never, currentUser?.id);
}
@Patch('customer-gateway-policies/:id')
@RequirePermissions('customer_gateways.manage')
@AuditAction({ module: 'customer_gateways', action: 'policy_update', objectType: 'customer_gateway_policy', objectIdParam: 'id' })
update(@Param('id') policyId: string, @Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.policiesService.update(policyId, body as never, currentUser?.id);
}
@Delete('customer-gateway-policies/:id')
@RequirePermissions('customer_gateways.manage')
@AuditAction({ module: 'customer_gateways', action: 'policy_delete', objectType: 'customer_gateway_policy', objectIdParam: 'id' })
remove(@Param('id') policyId: string, @CurrentUserParam() currentUser?: CurrentUser) {
return this.policiesService.remove(policyId, currentUser?.id);
}
@Post('customer-gateways/:id/policies/reorder')
@RequirePermissions('customer_gateways.manage')
@AuditAction({ module: 'customer_gateways', action: 'policy_reorder', objectType: 'customer_gateway', objectIdParam: 'id' })
reorder(@Param('id') gatewayId: string, @Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.policiesService.reorder(gatewayId, body as never, currentUser?.id);
}
}