// src/Webshop.Api/Controllers/Public/categoriesController.cs using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Threading.Tasks; using Webshop.Application; using Webshop.Application.DTOs.Categorie; using Webshop.Application.Services.Public; namespace Webshop.Api.Controllers.Public { [ApiController] [Route("api/v1/public/[controller]")] [AllowAnonymous] public class categorieController : ControllerBase { private readonly ICategorieService _categorieservice; public categorieController(ICategorieService categorieservice) { _categorieservice = categorieservice; } [HttpGet] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task GetActivecategories() { var result = await _categorieservice.GetAllActiveAsync(); return Ok(result.Value); } [HttpGet("{slug}")] [ProducesResponseType(typeof(CategorieDto), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] public async Task GetcategorieBySlug(string slug) { var result = await _categorieservice.GetBySlugAsync(slug); return result.Type switch { ServiceResultType.Success => Ok(result.Value), ServiceResultType.NotFound => NotFound(new { Message = result.ErrorMessage }), _ => StatusCode(StatusCodes.Status500InternalServerError, "Ein unerwarteter Fehler ist aufgetreten.") }; } } }