From ff68bb2ca5ce174e06e4fce5d71d130baab0c6c1 Mon Sep 17 00:00:00 2001 From: admin-valentin Date: Sat, 1 Aug 2026 20:51:20 +0000 Subject: [PATCH] feat(CC-055): add GET /decisions/:id + expand PATCH to update context/options/assumptions/reviewDueAt --- src/decisions/decisions.controller.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/decisions/decisions.controller.ts b/src/decisions/decisions.controller.ts index ea23cf1..5e49722 100644 --- a/src/decisions/decisions.controller.ts +++ b/src/decisions/decisions.controller.ts @@ -15,9 +15,13 @@ class CreateDecisionDto { } class UpdateDecisionDto { - @IsOptional() @IsString() selectedOption?: string; + @IsOptional() @IsString() context?: string; + @IsOptional() @IsArray() options?: string[]; + @IsOptional() @IsArray() assumptions?: string[]; + @IsOptional() @IsString() selectedOption?: string | null; @IsOptional() @IsString() outcomeReview?: string; @IsOptional() @IsArray() evidence?: unknown[]; + @IsOptional() @IsString() reviewDueAt?: string | null; } @Controller('decisions') @@ -50,6 +54,16 @@ export class DecisionsController { }); } + @Get(':id') + async getOne( + @CurrentSession() session: AuthenticatedSession, + @Param('id') id: string, + ) { + return db.query.decisions.findFirst({ + where: and(eq(decisions.id, id), eq(decisions.tenantId, session.tenantId)), + }); + } + @Post() async create( @CurrentSession() session: AuthenticatedSession, @@ -80,9 +94,15 @@ export class DecisionsController { const [updated] = await db .update(decisions) .set({ + ...(dto.context !== undefined ? { context: dto.context } : {}), + ...(dto.options !== undefined ? { options: dto.options } : {}), + ...(dto.assumptions !== undefined ? { assumptions: dto.assumptions } : {}), ...(dto.selectedOption !== undefined ? { selectedOption: dto.selectedOption } : {}), ...(dto.outcomeReview !== undefined ? { outcomeReview: dto.outcomeReview } : {}), ...(dto.evidence !== undefined ? { evidence: dto.evidence } : {}), + ...(dto.reviewDueAt !== undefined + ? { reviewDueAt: dto.reviewDueAt ? new Date(dto.reviewDueAt) : null } + : {}), updatedAt: new Date(), }) .where(and(eq(decisions.id, id), eq(decisions.tenantId, session.tenantId)))