< Summary

Information
Class: planora.Application.Features.Activities.Queries.GetDetails.GetActivityDetailsHandler
Assembly: planora.Application
File(s): /home/runner/work/planora/planora/src/planora.Application/Features/Activities/Queries/GetDetails/GetActivityDetailsHandler.cs
Tag: 10_15767155620
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 29
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Handle()100%22100%

File(s)

/home/runner/work/planora/planora/src/planora.Application/Features/Activities/Queries/GetDetails/GetActivityDetailsHandler.cs

#LineLine coverage
 1using planora.Application.Common;
 2using planora.Application.Interfaces.Mediator;
 3using planora.Domain.Entities;
 4using planora.Domain.Errors;
 5using planora.Domain.Repositories;
 6
 7namespace planora.Application.Features.Activities.Queries.GetDetails;
 8
 49public class GetActivityDetailsHandler(IRepository<Activity> repository)
 10    : IQueryHandler<GetActivityDetailsRequest, Result<GetActivityDetailsResponse>>
 11{
 12    public async Task<Result<GetActivityDetailsResponse>> Handle(
 13        GetActivityDetailsRequest query,
 14        CancellationToken cancellationToken
 15    )
 16    {
 417        var activityId = query.Id;
 418        var activity = await repository.GetByIdAsync(activityId, cancellationToken);
 19
 420        if (activity is null)
 21        {
 222            return ActivityError.NotFound(activityId);
 23        }
 24
 225        var result = activity.MapToActivityDetailsResponse();
 26
 227        return result;
 428    }
 29}