using FindAndDrive.Domain.Interfaces.Services; using FindAndDrive.Domain.Models.DTO; using FindAndDrive.Domain.Models.DTO.Request; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace FindAndDrive.API.Controllers; [ApiExplorerSettings(IgnoreApi = true)] [Authorize(nameof(Permissions.Client))] [ApiController] [Route("api/[controller]")] public class ClientController : ControllerBase { private readonly IClientService _clientService; public ClientController(IClientService clientService) { _clientService = clientService; } [HttpPost] public async Task CreateClient([FromBody] CreateClientRequest client) { var response = await _clientService.CreateClient(client); return Ok(response); } [HttpGet("{clientId:guid}")] public async Task GetClient([FromRoute] Guid clientId) { var client = await _clientService.GetClient(clientId); return Ok(client); } [HttpGet] public async Task GetClients() { var clients = await _clientService.GetActiveClients(); return Ok(clients); } [HttpPatch] public async Task UpdateClient([FromBody] UpdateClientRequest request) { await _clientService.UpdateClient(request); return Ok(); } }