import { Body, Controller, Delete, Get, Param, Patch, Post, UseGuards, } from '@nestjs/common'; import { JwtAuthGuard } from '../auth/jwt-auth.guard'; import { CurrentUser } from '../auth/current-user.decorator'; import { Roles } from '../auth/roles.decorator'; import { RolesGuard } from '../auth/roles.guard'; import { CreateAutomationRuleDto, UpdateAutomationRuleDto } from './dto'; import { AutomationsService } from './automations.service'; @Controller('automations') @UseGuards(JwtAuthGuard, RolesGuard) @Roles('owner', 'admin') export class AutomationsController { constructor(private readonly automations: AutomationsService) {} @Get() list(@CurrentUser() user: { organizationId: string }) { return this.automations.list(user.organizationId); } @Post() create( @CurrentUser() user: { organizationId: string }, @Body() dto: CreateAutomationRuleDto, ) { return this.automations.create(user.organizationId, dto); } @Patch(':id') update( @CurrentUser() user: { organizationId: string }, @Param('id') id: string, @Body() dto: UpdateAutomationRuleDto, ) { return this.automations.update(user.organizationId, id, dto); } @Delete(':id') async remove( @CurrentUser() user: { organizationId: string }, @Param('id') id: string, ) { await this.automations.remove(user.organizationId, id); return { ok: true }; } }