using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; using Core.Abstractions; using Core.Enumerations; using WeatherForecast.Services; using DomainResults.Mvc; using WeatherForecast.Models.Requests; namespace WeatherForecast.Controllers { [AllowAnonymous] [ApiController] [Route("api/[controller]")] public class BlogItemController : ControllerBase { private readonly ILogger _logger; private readonly IBlogItemService _blogItemService; public BlogItemController( ILogger logger, IBlogItemService blogItemService ) { _logger = logger; _blogItemService = blogItemService; } /// /// /// /// /// /// [HttpPost("{siteId}")] public IActionResult Post([FromRoute] Guid siteId, [FromBody] PostBlogItemRequestModel requestData) { var result = _blogItemService.Post(siteId, requestData); return result.ToActionResult(); } /// /// Returns full object /// /// [HttpGet("{siteId}/{blogId}")] public IActionResult Get([FromRoute] Guid siteId, [FromRoute] Guid blogId) { var result = _blogItemService.Get(siteId, blogId); return result.ToActionResult(); } /// /// Returns localized object /// /// /// [HttpGet("{siteId}")] public IActionResult GetSlug([FromRoute] Guid siteId, [FromQuery] string slug) { var result = _blogItemService.GetSlug(siteId, slug); return result.ToActionResult(); } /// /// /// /// /// /// /// [HttpPut("{siteId}/{blogId}")] public IActionResult Update([FromRoute] Guid siteId, [FromRoute] Guid blogId, [FromBody] PutBlogItemRequestModel requestData) { var result = _blogItemService.Update(siteId, blogId, requestData); return result.ToActionResult(); } /// /// /// /// /// /// [HttpDelete("{siteId}/{blogId}")] public IActionResult Delete([FromRoute] Guid siteId, [FromRoute] Guid blogId) { var result = _blogItemService.Delete(siteId, blogId); return result.ToActionResult(); } } }