< Summary - Syki

Information
Class: Syki.Back.Emails.EmailsService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Emails/EmailsService.cs
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 91
Coverable lines: 91
Total lines: 118
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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%210%
SendResetPasswordEmail()0%620%
SendUserRegisterEmailConfirmation()0%620%
SendNewClassActivityEmail()0%620%
GetContent(...)100%210%

File(s)

/home/runner/work/syki/syki/Back/Emails/EmailsService.cs

#LineLine coverage
 1namespace Syki.Back.Emails;
 2
 3public class EmailsService : IEmailsService
 4{
 5    private readonly HttpClient _client;
 6    private readonly EmailSettings _settings;
 07    public EmailsService(EmailSettings settings)
 8    {
 09        _settings = settings;
 010        _client = new HttpClient { BaseAddress = new Uri(settings.ApiUrl) };
 011        _client.DefaultRequestHeaders.Add("api-key", settings.ApiKey);
 012    }
 13
 14    public async Task SendResetPasswordEmail(string to, string token)
 15    {
 016    if (to.Contains("@syki")) return;
 17
 018        var link = $"{_settings.FrontUrl}/reset-password?token={token}";
 019        var body = new BrevoEmailMessage(
 020            sender: "syki@zaqbit.com",
 021            to: to,
 022            subject: "Syki - Redefinição de senha",
 023            content: GetContent("Redefinição de senha", "Para redefinir sua senha, clique no botão abaixo e siga as inst
 024        );
 25
 026        await _client.PostAsJsonAsync("", body);
 027    }
 28
 29    public async Task SendUserRegisterEmailConfirmation(string to, string token)
 30    {
 031    if (to.Contains("@syki")) return;
 32
 033        var link = $"{_settings.FrontUrl}/register-setup?token={token}";
 034        var body = new BrevoEmailMessage(
 035            sender: "syki@zaqbit.com",
 036            to: to,
 037            subject: "Syki - Cadastro",
 038            content: GetContent("Cadastro", "Para finalizar seu cadastro, clique no botão abaixo e siga as instruções.",
 039        );
 40
 041        await _client.PostAsJsonAsync("", body);
 042    }
 43
 44  public async Task SendNewClassActivityEmail(string to, string message)
 45    {
 046    if (to.Contains("@syki")) return;
 47
 048        var body = new BrevoEmailMessage(
 049            sender: "syki@zaqbit.com",
 050            to: to,
 051            subject: "Syki - Nova atividade",
 052            content: message
 053        );
 54
 055        await _client.PostAsJsonAsync("", body);
 056    }
 57
 58  private static string GetContent(string title, string description, string button, string link)
 59  {
 060    return """
 061      <!doctype html>
 062      <html lang="pt-BR">
 063      <head>
 064        <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
 065      </head>
 066      <body marginheight="0" topmargin="0" marginwidth="0" style="margin: 0px; background-color: #f2f3f8;" leftmargin="0
 067        <table cellspacing="0" border="0" cellpadding="0" width="100%" bgcolor="#f2f3f8"
 068          style="@import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700|Open+Sans:300,400,600,700); f
 069          <tr>
 070            <td>
 071              <table style="background-color: #f2f3f8; max-width:670px;  margin:0 auto;" width="100%" border="0" align="
 072                <tr>
 073                  <td style="height:80px;">&nbsp;</td>
 074                </tr>
 075                <tr>
 076                  <td>
 077                    <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"
 078                      style="max-width:670px;background:#fff; border-radius:3px; text-align:center;-webkit-box-shadow:0 
 079                      <tr>
 080                        <td style="height:40px;">&nbsp;</td>
 081                      </tr>
 082                      <tr>
 083                        <td style="padding:0 35px;">
 084                          <h1 style="color:#1e1e2d; font-weight:500; margin:0;font-size:32px;font-family:'Rubik',sans-se
 085                            SykiTitle</h1>
 086                          <span
 087                            style="display:inline-block; vertical-align:middle; margin:29px 0 26px; border-bottom:1px so
 088                          <p style="color:#455056; font-size:15px;line-height:24px; margin:0;">
 089                            SykiDescription
 090                          </p>
 091                          <a href="SykiFrontendLink"
 092                            style="background:#4caf50;text-decoration:none !important; font-weight:500; margin-top:35px;
 093                            SykiButton
 094                          </a>
 095                        </td>
 096                      </tr>
 097                      <tr>
 098                        <td style="height:40px;">&nbsp;</td>
 099                      </tr>
 0100                    </table>
 0101                  </td>
 0102                </tr>
 0103                <tr>
 0104                  <td style="height:80px;">&nbsp;</td>
 0105                </tr>
 0106              </table>
 0107            </td>
 0108          </tr>
 0109        </table>
 0110      </body>
 0111      </html>
 0112    """
 0113        .Replace("SykiTitle", title)
 0114        .Replace("SykiDescription", description)
 0115        .Replace("SykiButton", button)
 0116        .Replace("SykiFrontendLink", link);
 117  }
 118}