Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async function watchAlert(){
  2.     try{
  3.         console.log("CRON");
  4.         //obter todos os eventos ativos no sistema
  5.         const eventos = await Evento.find({}).populate("animal");
  6.         console.log("Eventos: ", eventos);
  7.    
  8.         //percorrer os eventos
  9.         for(var i=0;i<eventos.length;i++){
  10.  
  11.             //verifica se o evento esta ativo
  12.             if(eventos[i].ativo === true && eventos[i].notificado === false){
  13.                 //verificar se a data dos eventos é <= que data atual mais 3 dias
  14.                 var today = new Date();
  15.                 var newdate = new Date();
  16.                 newdate.setDate(today.getDate()+3);
  17.  
  18.                 //console.log("newdate: ", newdate);
  19.                 if(eventos[i].data <= newdate){
  20.                     //obtem o veterinario
  21.                     const vet = await User.findById(eventos[i].veterinario)
  22.                     console.log("veterinario: ", vet)
  23.                     const dadosVet = await Veterinario.findById(vet.veterinario)
  24.                     console.log("dados vet: ", dadosVet)
  25.  
  26.                     //apartir do animal obter o responsavel do animal
  27.                     const user = await User.findById(eventos[i].animal.responsavel)
  28.  
  29.                     //verifica se o user esta ativo
  30.                     if(user.ativo === true){
  31.                         console.log("user: ", user.email)
  32.  
  33.                         //enviar email a entidade competente                
  34.                         var transporter = nodemailer.createTransport({
  35.                             service: 'Gmail',
  36.                             auth: {
  37.                                 user: 'iseppata2018principal@gmail.com', // Your email id
  38.                                 pass: 'Andre!2018!' // Your password
  39.                             }
  40.                         });
  41.  
  42.                         var text = '\n\n' +
  43.                             '\nAlerta de Evento da plataforma PATA:\n\n' +
  44.                             '\nEvento: ' + eventos[i].tipo + '\nData: ' + eventos[i].data +
  45.                             '\nAnimal: ' + eventos[i].animal.nome + '\nVeterinário: ' + vet.name +
  46.                             '\nEspecialidade: ' + dadosVet.especialidade + '\nMorada: ' + dadosVet.morada +
  47.                             '\nContacto: ' + dadosVet.contacto + '\n\n\nCumprimentos da PATA';
  48.  
  49.                         var mailOptions = {
  50.                             from: '<iseppata2018principal@gmail.com>', // sender address
  51.                             to: "iseppata2018ec@gmail.com",
  52.                             subject: 'Alerta de Evento PATA: '+ eventos[i]._id,
  53.                             text: text //, // plaintext body
  54.                         };
  55.  
  56.                         transporter.sendMail(mailOptions, function (error, info) {
  57.                             if (error) {  console.log(error); } else {
  58.                                 eventos[i].notificado = true;
  59.                             };
  60.                             transporter.close();
  61.                         });    
  62.                     } } } }
  63.        
  64.     } catch(e) {
  65.         console.error(`Erro: ${e.message}`);
  66.     }
  67. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement