using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; using WeatherForecast.Services; using DomainResults.Mvc; using Core.Abstractions; using Core.Enumerations; using WeatherForecast.Models.Requests; namespace WeatherForecast.Controllers { [AllowAnonymous] [ApiController] [Route("api/[controller]")] public class ShopItemController : ControllerBase { private readonly ILogger _logger; private readonly IShopItemService _shopItemService; public ShopItemController( ILogger logger, IShopItemService shopItemService ) { _logger = logger; _shopItemService = shopItemService; } /// /// /// /// /// /// /// [HttpPost("{siteId}/{sku}")] public IActionResult Post([FromRoute] Guid siteId, [FromRoute] string sku, [FromBody] PostShopItemRequestModel requestData) { var result = _shopItemService.Post(siteId, sku, requestData); return result.ToActionResult(); } /// /// /// /// /// /// [HttpGet("{siteId}/{sku}")] public IActionResult Get([FromRoute] Guid siteId, [FromRoute] string sku, [FromQuery] string locale) { var result = _shopItemService.Get(siteId, sku, Enumeration.FromDisplayName(locale) ?? Locales.Us); return result.ToActionResult(); } /// /// /// /// /// /// /// [HttpPut("{siteId}/{sku}")] public IActionResult Update([FromRoute] Guid siteId, [FromRoute] string sku, [FromBody] PutShopItemRequestModel requestData) { var result = _shopItemService.Update(siteId, sku, requestData); return result.ToActionResult(); } /// /// /// /// /// /// [HttpDelete("{siteId}/{sku}")] public IActionResult Delete([FromRoute] Guid siteId, [FromRoute] string sku) { var result = _shopItemService.Delete(siteId, sku); return result.ToActionResult(); } } }