Browse Source

Sessão 20

master
eduveks 5 years ago
parent
commit
813533eb59
4 changed files with 89 additions and 2 deletions
  1. +21
    -2
      config/_development.json
  2. BIN
      dbs/social_ma.mv.db
  3. +61
    -0
      server/services/jobs/daily-summary.js
  4. +7
    -0
      server/templates/emails/daily-summary.html

+ 21
- 2
config/_development.json View File

@ -1,7 +1,26 @@
{ {
"cron": {"jobs": []},
"cron": {
"secret": "VLgL7EJZ4yXPAjce",
"jobs": [
{
"name": "daily-summary",
"config": "0 0 * * * ?",
"url": "/services/jobs/daily-summary"
}
]
},
"settings": {"public": {}}, "settings": {"public": {}},
"smtp": {},
"smtp": {
"default": {
"enabled": true,
"host": "serua.veks.net",
"port": 465,
"ssl": true,
"from": "academy-test@netuno.org",
"username": "academy-test@netuno.org",
"password": "gDj1pwQ5T#0#"
}
},
"name": "social_ma", "name": "social_ma",
"setup": { "setup": {
"schema": { "schema": {


BIN
dbs/social_ma.mv.db View File


+ 61
- 0
server/services/jobs/daily-summary.js View File

@ -0,0 +1,61 @@
const dbComunidades = _db.query(`
SELECT
id,
nome
FROM comunidade
WHERE active = true
ORDER BY nome
`)
for (const dbComunidade of dbComunidades) {
const dbPublicacoes = _db.queryFirst(`
SELECT
count(id) AS total
FROM publicacao
WHERE momento > ?
AND comunidade_id = ?
`, _time.localDateTime().minusDays(1), dbComunidade.getInt("id"))
if (dbPublicacoes.getInt("total") <= 0) {
continue;
}
const dbPessoas = _db.query(`
SELECT
nome, email
FROM pessoa
INNER JOIN pessoa_comunidade ON pessoa.id = pessoa_comunidade.pessoa_id
WHERE
pessoa_comunidade.comunidade_id = ?
AND pessoa.active = true
`, dbComunidade.getInt("id"))
for (const dbPessoa of dbPessoas) {
const smtp = _smtp.init()
smtp.to = dbPessoa.getString("email")
smtp.subject = `Plataforma Social - ${dbComunidade.getString("nome")}`
smtp.text = `
Olá ${dbPessoa.getString("nome")},
Hoje houve ${dbPublicacoes.getInt("total")} novas publicações.
`
smtp.html = _template.getOutput(
"emails/daily-summary",
_val.map()
.set("comunidade", dbComunidade.getString("nome"))
.set("pessoa", dbPessoa.getString("nome"))
.set("total", dbPublicacoes.getInt("total"))
)
smtp.send()
_log.info("Pessoa:", dbPessoa)
}
}
_log.info("Cron Daily Summary E-mail Enviado")

+ 7
- 0
server/templates/emails/daily-summary.html View File

@ -0,0 +1,7 @@
<div style="padding: 40px; background: #661b1a">
<div style="padding: 40px; background: #fff;">
_{data=comunidade}
<p>Olá _{req=pessoa},</p>
Hoje houve _{data=total} novas publicações.
</div>
</div>

Loading…
Cancel
Save