From d06d4341431bf4317e8c9eee56705c50cdaa8a98 Mon Sep 17 00:00:00 2001 From: DeepnaPooja Date: Wed, 16 Sep 2026 16:25:48 +0530 Subject: [PATCH] Update order invoice endpoints --- .../Features/Order/OrderController.cs | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/Distribution/Features/Order/OrderController.cs b/Distribution/Features/Order/OrderController.cs index a5f528c..ca8cd83 100644 --- a/Distribution/Features/Order/OrderController.cs +++ b/Distribution/Features/Order/OrderController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; namespace Distribution.Features.Order; @@ -10,6 +10,10 @@ public class OrderController(OrderService service) : ControllerBase public async Task GetAll() => Ok(await service.GetAllAsync()); + [HttpGet("confirmed")] + public async Task GetConfirmed([FromQuery] Guid? agentId, [FromQuery] Guid? routeId, [FromQuery] Guid? shopId) => + Ok(await service.GetConfirmedAsync(agentId, routeId, shopId)); + [HttpGet("{id:guid}")] public async Task GetById(Guid id) { @@ -35,6 +39,39 @@ public class OrderController(OrderService service) : ControllerBase catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } } + [HttpPut("{id:guid}/items")] + public async Task ReplaceItems(Guid id, UpdateOrderItemsRequest request, CancellationToken ct) + { + try + { + var result = await service.ReplaceItemsAsync(id, request, ct); + return result is null ? NotFound() : Ok(result); + } + catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } + } + + [HttpPost("{id:guid}/confirm")] + public async Task Confirm(Guid id, CancellationToken ct) + { + try + { + var result = await service.ConfirmAsync(id, ct); + return result is null ? NotFound() : Ok(result); + } + catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } + } + + [HttpPost("{id:guid}/confirm-and-create-invoice")] + public async Task ConfirmAndCreateInvoice(Guid id, CancellationToken ct) + { + try + { + var result = await service.ConfirmAndCreateInvoiceAsync(id, ct); + return result is null ? NotFound() : Ok(result); + } + catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } + } + [HttpPut("{id:guid}")] public async Task Update(Guid id, UpdateOrderRequest request, CancellationToken ct) { @@ -46,6 +83,13 @@ public class OrderController(OrderService service) : ControllerBase catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } } + [HttpPost("{id:guid}/cancel")] + public async Task Cancel(Guid id, CancellationToken ct) + { + var cancelled = await service.DeleteAsync(id, ct); + return cancelled ? NoContent() : NotFound(); + } + [HttpDelete("{id:guid}")] public async Task Delete(Guid id, CancellationToken ct) {