From df2541108b3b342603faee18d5d0dfe5c25a57fd Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 16 Jan 2026 09:51:30 +0100 Subject: [PATCH] Add POST/PUT endpoints for RESULT insert and update Added POST endpoint to insert RESULT records and PUT endpoint to update RESULT records in OutResController. Integrated InsertResultProcedure and UpdateResultProcedure with MediatR, returning appropriate status codes. Updated using directives accordingly. --- src/ReC.API/Controllers/OutResController.cs | 33 ++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/ReC.API/Controllers/OutResController.cs b/src/ReC.API/Controllers/OutResController.cs index 330cbd6..ec98e69 100644 --- a/src/ReC.API/Controllers/OutResController.cs +++ b/src/ReC.API/Controllers/OutResController.cs @@ -3,6 +3,8 @@ using Microsoft.AspNetCore.Mvc; using ReC.API.Extensions; using ReC.API.Models; using ReC.Application.Common.Procedures.DeleteProcedure; +using ReC.Application.Common.Procedures.InsertProcedure; +using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.OutResults.Commands; using ReC.Application.OutResults.Queries; @@ -58,7 +60,36 @@ public class OutResController(IMediator mediator, IConfiguration config) : Contr _ => Ok(res), }; } - + + /// + /// Inserts a RESULT record via the insert procedure. + /// + /// InsertResultProcedure payload. + /// A token to cancel the operation. + /// The created RESULT identifier. + [HttpPost] + [ProducesResponseType(StatusCodes.Status201Created)] + public async Task Post([FromBody] InsertResultProcedure procedure, CancellationToken cancel) + { + var id = await mediator.ExecuteInsertProcedure(procedure, cancel: cancel); + return StatusCode(StatusCodes.Status201Created, id); + } + + /// + /// Updates a RESULT record via the update procedure. + /// + /// RESULT identifier to update. + /// UpdateResultProcedure payload. + /// A token to cancel the operation. + /// No content on success. + [HttpPut("{id:long}")] + [ProducesResponseType(StatusCodes.Status204NoContent)] + public async Task Put([FromRoute] long id, [FromBody] UpdateResultProcedure procedure, CancellationToken cancel) + { + await mediator.ExecuteUpdateProcedure(procedure, id, cancel: cancel); + return NoContent(); + } + /// /// Deletes RESULT records via the delete procedure for the specified id range. ///