Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cliente de email integrado com SendGrid #23

Merged
merged 13 commits into from
Jun 15, 2020
Merged

Conversation

pabrrs
Copy link
Member

@pabrrs pabrrs commented May 31, 2020

Descrição das Mudanças

Adiciona uma abstração para integrar com o SendGrid.

Para iniciarmos a utilização do SendGrid, precisamos executar algumas tarefas:

  • Criar uma conta gratutita com o email oficial do idovogados. link
  • Criar uma integração via WEB API no SendGrid, para gerar uma API KEY. link
  • Autorizar um e-mail no domínio do Idvogados, para fazer os envios de e-mail utilizando a API do SendGrid. link

Os ítens listados acima não impedem que essa PR seja mergeada.

Bugs Corrigidos

Mudanças na API

Nenhuma

Mudanças de comportamento

Nenhuma

Testing Procedure

Testes automatizados:

npm t

Testes manuais:

Acesse a API em modo terminal:

NODE_ENV=production \
SENDGRID_API_KEY='sua api key no sendgrid' \
SENDGRID_FROM_EMAIL='seu email autorizado no sendgrid' \
npm run cli
# Acessa api no modo terminal

Após acessar a api em modo CLI, rode os seguintes comandos:

const sendgrid = require('./src/client/sendgrid-client')
await sendgrid.sendMail({
  to: ['[email protected]', '[email protected]'],
  subject: 'hello world',
  content: '<h1>hello friend</h1> </br> <h2>Im a nice message</h2>'
})

Você deverá ver uma mensagem semelhante a:

{"level":"debug", ... ,"action":"sendgrid-client.sendMail","message":"Sending mail","opts":{"from":"seu email autorizado no sendgrid","to":["[email protected]", "[email protected]"],"subject":"hello world","html":"<h1>hello friend</h1> </br> <h2>Im a nice message</h2>"}}
[
  Response {
    statusCode: 202,
    body: '',
    headers: {
      server: 'nginx',
      date: 'Sun, 31 May 2020 20:47:32 GMT',
      'content-length': '0',
      connection: 'close',
      'x-message-id': 'dg5LKOsrRyWKqbx52jcPDw',
      'access-control-allow-origin': 'https://sendgrid.api-docs.io',
      'access-control-allow-methods': 'POST',
      'access-control-allow-headers': 'Authorization, Content-Type, On-behalf-of, x-sg-elas-acl',
      'access-control-max-age': '600',
      'x-no-cors-reason': 'https://sendgrid.com/docs/Classroom/Basics/API/cors.html'
    }
  },
  ''
]

Verifique sua caixa de e-mail, você deverá ter recebido uma mensagem indicando que foi enviada via SendGrid:

image

PR Checklist

  • Possui testes (se não, por favor descreva o motivo de não ter teste)
  • Foi feito Rebase para a master no momento que o PR foi aberto
  • Modificações estão de acordo com o padrão de código
  • Atualizado documentação

PR Checklist do time

  • O PR está apontando para a branch correta
  • Os testes estão passando (ou as falha não são relacionadas a este PR)

@pabrrs pabrrs requested a review from a team May 31, 2020 21:11
@pabrrs pabrrs added Status: Precisa Ser Revisado Precisa de code review Tipo: Funcionalidade Proposta ou funcionalidade labels May 31, 2020
@pictos pictos linked an issue Jun 1, 2020 that may be closed by this pull request
rodrigondec
rodrigondec previously approved these changes Jun 1, 2020
@codecov
Copy link

codecov bot commented Jun 10, 2020

Codecov Report

Merging #23 into dev will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff            @@
##               dev       #23   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           11        13    +2     
  Lines           73        84   +11     
  Branches         5         5           
=========================================
+ Hits            73        84   +11     
Impacted Files Coverage Δ
src/services/health-service.js 100.00% <ø> (ø)
src/client/sendgrid-client.js 100.00% <100.00%> (ø)
src/config/sendgrid-config.js 100.00% <100.00%> (ø)
Impacted Files Coverage Δ
src/services/health-service.js 100.00% <ø> (ø)
src/client/sendgrid-client.js 100.00% <100.00%> (ø)
src/config/sendgrid-config.js 100.00% <100.00%> (ø)

Copy link
Member

@rodrigondec rodrigondec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me 🚀

Copy link
Member

@mastercoks mastercoks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Por mim está tudo ok.

@rodrigondec
Copy link
Member

rodrigondec commented Jun 12, 2020

@pabrrs @pictos ia dar o merge agora. Porém fiquei na dúvida entre o merge normal ou o squash. Qual será o padrão utilizado?

@pictos
Copy link
Contributor

pictos commented Jun 12, 2020

@rodrigondec, pode ser o merge normal.

@rodrigondec rodrigondec merged commit 739a9c4 into idvogados:dev Jun 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Precisa Ser Revisado Precisa de code review Tipo: Funcionalidade Proposta ou funcionalidade
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Criar um cliente de e-mail para API
5 participants