defmodule Api.UserEmailMailer do
  import Swoosh.Email
  alias Api.Repo

  def encrypt_json(json) do
    query = "select encrypt('#{json}'::bytea, '1nf0rm3', 'aes')::text"
    token = Repo.query!(query).rows |> hd() |> hd()
    Base.encode64(token)
  end

  def send_email(studydata) do
    Envar.load(".env")
    Envar.require_env_file(".env")

    json = studydata.json
    json = Jason.encode!(json)
    encrypted_hash = encrypt_json(json)
    lLink = "https://estudio.informemedico.com.ar/#/#{studydata.idsite}/#{encrypted_hash}"

    body = """
      <p> A continuación podrá acceder al informe del estudio que se realizó el #{studydata.lStudyDate} en #{studydata.lSiteName}.</p>
      <p>Para visualizarlo ingrese <a href="#{lLink}">aquí</a> o copie el siguiente link en su navegador: (requiere Google Chrome, Firefox, Internet Explorer 9 o superior).</p><br>
      <a href="#{lLink}">#{lLink}</a><br><br>
      Atentamente,<br>#{studydata.name}<br>
      <p>Mensaje enviado por: #{studydata.fromEmail}</p>
    """

    email = new()
      |> to({studydata.name, studydata.email})
      |> from({Envar.get("FROM"), Envar.get("SMTP_USER")})
      |> subject("Mensaje de Paciente: #{studydata.name}")
      |> html_body(body)

    email
  end

end
