< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.WebApi.Email.MailgunScopeInvitationNoticeSender
Assembly: ArturRios.Heimdall.WebApi
File(s): /home/ci/agent/workspace/heimdall-api-docs_main/app/src/Presentation/ArturRios.Heimdall.WebApi/Email/MailgunScopeInvitationNoticeSender.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 24
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 4
Fully covered methods: 4
Total methods: 4
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Purpose()100%11100%
SendInvitationAsync(...)100%11100%
SendAnswerAsync(...)100%11100%

File(s)

/home/ci/agent/workspace/heimdall-api-docs_main/app/src/Presentation/ArturRios.Heimdall.WebApi/Email/MailgunScopeInvitationNoticeSender.cs

#LineLine coverage
 1using ArturRios.Heimdall.Command.Services;
 2using ArturRios.Messaging.Email;
 3
 4namespace ArturRios.Heimdall.WebApi.Email;
 5
 6/// <summary>
 7///     Delivers the scope owner invitation notices through Mailgun (UC-21, UC-60, UC-61). A failure is logged
 8///     by <see cref="MailgunSender" /> and never propagated: the invitation or its answer is already stored.
 9/// </summary>
 10public class MailgunScopeInvitationNoticeSender(
 11    IEmailService emailService,
 12    ILogger<MailgunScopeInvitationNoticeSender> logger)
 513    : MailgunSender(emailService, logger), IScopeInvitationNoticeSender
 14{
 515    protected override string Purpose => "scope invitation notice";
 16
 17    public Task SendInvitationAsync(string inviteeEmail, string inviterName, string scopeName, DateTime expiresAt) =>
 318        DeliverAsync(inviteeEmail, ScopeInvitationNoticeText.InvitationSubject,
 319            ScopeInvitationNoticeText.Invitation(inviterName, scopeName, expiresAt));
 20
 21    public Task SendAnswerAsync(string inviterEmail, string inviteeName, string scopeName, bool accepted) =>
 222        DeliverAsync(inviterEmail, ScopeInvitationNoticeText.AnswerSubject,
 223            ScopeInvitationNoticeText.Answer(inviteeName, scopeName, accepted));
 24}