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. ///