From 5caa233bead34d37b17af80d360c65777a5ad1f0 Mon Sep 17 00:00:00 2001 From: admin-valentin Date: Fri, 31 Jul 2026 10:45:05 +0000 Subject: [PATCH] feat(opportunities): add opportunities.controller --- src/opportunities/opportunities.controller.ts | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/opportunities/opportunities.controller.ts diff --git a/src/opportunities/opportunities.controller.ts b/src/opportunities/opportunities.controller.ts new file mode 100644 index 0000000..b782f01 --- /dev/null +++ b/src/opportunities/opportunities.controller.ts @@ -0,0 +1,34 @@ +import { Body, Controller, Get, Param, ParseUUIDPipe, Patch, Post } from '@nestjs/common'; +import { CurrentSession } from '../auth/session.decorator'; +import type { AuthenticatedSession } from '../auth/tenant.guard'; +import { CreateOpportunityDto, UpdateOpportunityDto } from './dto'; +import { OpportunitiesService } from './opportunities.service'; + +@Controller('opportunities') +export class OpportunitiesController { + constructor(private readonly opportunitiesService: OpportunitiesService) {} + + @Get() + list(@CurrentSession() session: AuthenticatedSession) { + return this.opportunitiesService.list(session); + } + + @Get(':id') + getById(@CurrentSession() session: AuthenticatedSession, @Param('id', ParseUUIDPipe) id: string) { + return this.opportunitiesService.getById(session, id); + } + + @Post() + create(@CurrentSession() session: AuthenticatedSession, @Body() dto: CreateOpportunityDto) { + return this.opportunitiesService.create(session, dto); + } + + @Patch(':id') + update( + @CurrentSession() session: AuthenticatedSession, + @Param('id', ParseUUIDPipe) id: string, + @Body() dto: UpdateOpportunityDto, + ) { + return this.opportunitiesService.update(session, id, dto); + } +}