@ -0,0 +1,40 @@ | |||||
using Microsoft.AspNetCore.Authorization; | |||||
using Microsoft.AspNetCore.Mvc; | |||||
using PurchaseBff.Services; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
namespace PurchaseBff.Controllers | |||||
{ | |||||
[Route("api/v1/[controller]")] | |||||
[Authorize] | |||||
public class OrderController : Controller | |||||
{ | |||||
private readonly IBasketService _basketService; | |||||
public OrderController(IBasketService basketService) | |||||
{ | |||||
_basketService = basketService; | |||||
} | |||||
[Route("draft/{basketId}")] | |||||
[HttpGet] | |||||
public async Task<IActionResult> GetOrderDraft(string basketId) | |||||
{ | |||||
if (string.IsNullOrEmpty(basketId)) | |||||
{ | |||||
return BadRequest("Need a valid basketid"); | |||||
} | |||||
// Get the basket data and build a order draft based on it | |||||
var basket = await _basketService.GetById(basketId); | |||||
if (basket == null) | |||||
{ | |||||
return BadRequest($"No basket found for id {basketId}"); | |||||
} | |||||
var order = _basketService.MapBasketToOrder(basket, isDraft: true); | |||||
return Ok(order); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,33 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
namespace PurchaseBff.Models | |||||
{ | |||||
public class OrderData | |||||
{ | |||||
public string OrderNumber { get; set; } | |||||
public DateTime Date { get; set; } | |||||
public string Status { get; set; } | |||||
public decimal Total { get; set; } | |||||
public string Description { get; set; } | |||||
public string City { get; set; } | |||||
public string Street { get; set; } | |||||
public string State { get; set; } | |||||
public string Country { get; set; } | |||||
public string ZipCode { get; set; } | |||||
public string CardNumber { get; set; } | |||||
public string CardHolderName { get; set; } | |||||
public bool IsDraft { get; set; } | |||||
public DateTime CardExpiration { get; set; } | |||||
public string CardExpirationShort { get; set; } | |||||
public string CardSecurityNumber { get; set; } | |||||
public int CardTypeId { get; set; } | |||||
public string Buyer { get; set; } | |||||
public List<OrderItemData> OrderItems { get; } = new List<OrderItemData>(); | |||||
} | |||||
} |
@ -0,0 +1,17 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
namespace PurchaseBff.Models | |||||
{ | |||||
public class OrderItemData | |||||
{ | |||||
public int ProductId { get; set; } | |||||
public string ProductName { get; set; } | |||||
public decimal UnitPrice { get; set; } | |||||
public decimal Discount { get; set; } | |||||
public int Units { get; set; } | |||||
public string PictureUrl { get; set; } | |||||
} | |||||
} |