From 9017097006be42d7c8232d36d0aa07f962851d04 Mon Sep 17 00:00:00 2001 From: leandro Date: Thu, 19 Mar 2026 12:11:30 -0300 Subject: [PATCH] feat(sales): exponer API de lectura para Delivery Note closes #21 --- .../Sales/DeliveryNoteController.cs | 69 +++++++++++++++++++ phronCare.API/Program.cs | 3 + 2 files changed, 72 insertions(+) create mode 100644 phronCare.API/Controllers/Sales/DeliveryNoteController.cs diff --git a/phronCare.API/Controllers/Sales/DeliveryNoteController.cs b/phronCare.API/Controllers/Sales/DeliveryNoteController.cs new file mode 100644 index 0000000..ca30f09 --- /dev/null +++ b/phronCare.API/Controllers/Sales/DeliveryNoteController.cs @@ -0,0 +1,69 @@ +using Domain.Entities; +using Microsoft.AspNetCore.Mvc; +using System.Reflection; + +namespace phronCare.API.Controllers.Sales +{ + [Route("api/[controller]")] + [ApiController] + public class DeliveryNoteController : ControllerBase + { + private readonly IDeliveryNoteDom _deliveryNoteService; + + public DeliveryNoteController(IDeliveryNoteDom deliveryNoteService) + { + _deliveryNoteService = deliveryNoteService ?? throw new ArgumentNullException(nameof(deliveryNoteService)); + } + + [HttpGet("{id:int}")] + public async Task> GetById(int id) + { + try + { + var deliveryNote = await _deliveryNoteService.GetByIdAsync(id); + if (deliveryNote == null) + return NotFound($"Remito con ID {id} no encontrado."); + + return Ok(deliveryNote); + } + catch (Exception ex) + { + var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod"; + return StatusCode(500, $"{methodName} Message: {ex.Message}"); + } + } + + [HttpGet("number/{deliveryNoteNumber}")] + public async Task> GetByDeliveryNoteNumber(string deliveryNoteNumber) + { + try + { + var deliveryNote = await _deliveryNoteService.GetByDeliveryNoteNumberAsync(deliveryNoteNumber); + if (deliveryNote == null) + return NotFound($"Remito con número {deliveryNoteNumber} no encontrado."); + + return Ok(deliveryNote); + } + catch (Exception ex) + { + var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod"; + return StatusCode(500, $"{methodName} Message: {ex.Message}"); + } + } + + [HttpGet("by-quote/{quoteId:int}")] + public async Task>> GetByQuoteId(int quoteId) + { + try + { + var deliveryNotes = await _deliveryNoteService.GetByQuoteIdAsync(quoteId); + return Ok(deliveryNotes); + } + catch (Exception ex) + { + var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod"; + return StatusCode(500, $"{methodName} Message: {ex.Message}"); + } + } + } +} diff --git a/phronCare.API/Program.cs b/phronCare.API/Program.cs index cca7d97..129c6b5 100644 --- a/phronCare.API/Program.cs +++ b/phronCare.API/Program.cs @@ -238,6 +238,9 @@ static void RepositorysAndServices(WebApplicationBuilder builder) builder.Services.AddScoped(); builder.Services.AddScoped(); + + builder.Services.AddScoped(); + builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); -- 2.47.1