< Summary

Information
Class: ClientManager.API.Controllers.ClientController
Assembly: ClientManager.API
File(s): /home/runner/work/ClientManagerDemo/ClientManagerDemo/src/ClientManager/ClientManager.API/Controllers/ClientController.cs
Line coverage
76%
Covered lines: 16
Uncovered lines: 5
Coverable lines: 21
Total lines: 49
Line coverage: 76.1%
Branch coverage
70%
Covered branches: 7
Total branches: 10
Branch coverage: 70%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
CreateClient()87.5%88100%
GetClient()0%620%

File(s)

/home/runner/work/ClientManagerDemo/ClientManagerDemo/src/ClientManager/ClientManager.API/Controllers/ClientController.cs

#LineLine coverage
 1using ClientManager.API.Mappers;
 2using ClientManager.API.Services;
 3using ClientManager.Shared.DTOs.Requests;
 4using ClientManager.Shared.DTOs.Responses;
 5using Microsoft.AspNetCore.Mvc;
 6using RabbitMQ.Client.Exceptions;
 7
 8namespace ClientManager.API.Controllers;
 9
 10[ApiController]
 11[Route("api/[controller]")]
 412public class ClientController(IClientService clientService) : ControllerBase
 13{
 414    readonly IClientService _clientService = clientService;
 15
 16    [HttpPost]
 17    public async Task<IActionResult> CreateClient([FromBody] CreateClientRequest createClientRequest)
 18    {
 419        if (createClientRequest is null)
 120            return BadRequest("Client data is required");
 21
 322        if (!ModelState.IsValid)
 123            return BadRequest(ModelState);
 24
 25        try
 26        {
 227            var clientCommand = await _clientService.SendCreateClientMessage(ClientMapper.ToCreateClientCommand(createCl
 128            return AcceptedAtAction(nameof(GetClient), new { id = clientCommand.Id }, ClientMapper.ToResponse(clientComm
 29        }
 130        catch (PublishException ex)
 31        {
 132            var errorResponse = new ErrorResponse
 133            {
 134                Message = "Unexpected server error occurred sending message to broker.",
 135                Details = ex.InnerException?.Message ?? ex.Message
 136            };
 137            return StatusCode(500, errorResponse);
 38        }
 439    }
 40
 41    [HttpGet("{id}")]
 42    public async Task<IActionResult> GetClient(Guid id)
 43    {
 044        var client = await _clientService.GetClientById(id);
 045        if (client == null)
 046            return NotFound();
 047        return Ok(ClientMapper.ToResponse(client));
 048    }
 49}