< Summary - Syki

Information
Class: Syki.Back.Middlewares.ExceptionsMiddleware
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Middlewares/ExceptionsMiddleware.cs
Tag: 56_26538939494
Line coverage
25%
Covered lines: 4
Uncovered lines: 12
Coverable lines: 16
Total lines: 42
Line coverage: 25%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Invoke()100%1160%
HandleExceptionAsync(...)0%620%
GetFullExceptionMessage(...)0%620%

File(s)

/home/runner/work/syki/syki/Back/Middlewares/ExceptionsMiddleware.cs

#LineLine coverage
 1using System.Text.Json;
 2using ILogger = Serilog.ILogger;
 3
 4namespace Syki.Back.Middlewares;
 5
 26public class ExceptionsMiddleware(RequestDelegate next, ILogger logger)
 7{
 8    public async Task Invoke(HttpContext context)
 9    {
 10        try
 11        {
 108812            await next(context);
 108813        }
 014        catch (Exception ex)
 15        {
 016            await HandleExceptionAsync(context, ex);
 17        }
 108818    }
 19
 20    private Task HandleExceptionAsync(HttpContext context, Exception ex)
 21    {
 022        var message = EnvironmentExtensions.IsDevelopmentOrTesting() ? GetFullExceptionMessage(ex) : "Erro ao executar e
 023        var result = JsonSerializer.Serialize(new ErrorOut { Code = "Error", Message = message });
 24
 025        context.Response.ContentType = "application/json";
 026        context.Response.StatusCode = 500;
 27
 028        logger.Error("Internal Server Error -> {Message}", message);
 29
 030        return context.Response.WriteAsync(result);
 31    }
 32
 33    private static string GetFullExceptionMessage(Exception ex)
 34    {
 035        var message = ex.Message;
 036        if (ex.InnerException is not null)
 37        {
 038            message += " --> " + GetFullExceptionMessage(ex.InnerException);
 39        }
 040        return message;
 41    }
 42}