First Commit
This commit is contained in:
123
html/sternwarte/checkfuehrung/checkfuehrung.js
Executable file
123
html/sternwarte/checkfuehrung/checkfuehrung.js
Executable file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
chekcSofue.js
|
||||
|
||||
Checked per cron jeden Tag die SOFUE - Datenbank. Prüft, ob 'gestern' eine
|
||||
Führung hätte stattfinden sollen. Wenn ja, wird der BEO der Führung per mail
|
||||
benachrichtigt mit der Bitte, die Nachbearbeitungs-Webseite auszufüllen.
|
||||
|
||||
|
||||
|
||||
TODO
|
||||
Dieses Programm kann auch die Überwachung machen, dass Einträge in der DB gelöscht werden:
|
||||
- abgesagte: sofort nach Absage
|
||||
- stattgefundene: nach 6 Monaten, hier nur die persönl. Daten löschen
|
||||
- Aber Statistik-Daten behalten: Anzahl der Anfragen, davon zugesagt, davon abgesagt
|
||||
|
||||
|
||||
Versions:
|
||||
V 0.0 2019-02-04 rxf
|
||||
- Start
|
||||
*/
|
||||
"use strict"
|
||||
|
||||
const DEVELOP=0; // 1 -> Entwicklung 0-> Produktion
|
||||
const DAYS=9;
|
||||
|
||||
const nodemailer = require('nodemailer');
|
||||
const moment = require('moment');
|
||||
const axios = require('axios');
|
||||
const mysql = require('mysql2/promise');
|
||||
|
||||
const beo_Url = 'beoanswer/beoanswer.php?fdate=';
|
||||
const Url = DEVELOP ? 'http://localhost:8081/' : 'https://sternwarte-welzheim.de/';
|
||||
const DB_host = DEVELOP ? 'localhost' : 'localhost';
|
||||
const DB_port = DEVELOP ? 3306 : 3306;
|
||||
const DB_user = DEVELOP ? 'root' : 'admin_310927';
|
||||
const DB_pass = DEVELOP ? 'SFluorit' : '5D5u49cKNFqf';
|
||||
const DB_dbase = DEVELOP ? 'sternwarte' : 'db310927';
|
||||
|
||||
const transporter = DEVELOP ? nodemailer.createTransport({
|
||||
host: 'localhost',
|
||||
port: 1025,
|
||||
secure: false, // true for 465, false for other ports
|
||||
}) : nodemailer.createTransport({
|
||||
sendmail: true
|
||||
// host: 'smtp.1und1.de',
|
||||
// port: 587,
|
||||
// secure: false, // true for 465, false for other ports
|
||||
// auth: {
|
||||
// user: 'rxf@fuerst-stuttgart.de', // generated ethereal user
|
||||
// pass: 'tibTop-xopqar-1qyrqe' // generated ethereal password
|
||||
// }
|
||||
});
|
||||
|
||||
|
||||
// Ajax-Call, um die Daten von der DBase zu holen
|
||||
async function fetchDatafromDB(conn,termin) {
|
||||
let result;
|
||||
let id;
|
||||
let query = "select mitarbeiter,id from SoFue2 where DATE(wtermin) = '" + termin + "' and status = 2";
|
||||
try {
|
||||
result = await conn.query(query);
|
||||
if (result[0].length == 0) {
|
||||
console.log("Keine Führung gewesen");
|
||||
return;
|
||||
}
|
||||
let ma = result[0][0].mitarbeiter;
|
||||
id = result[0][0].id;
|
||||
query = "select vorname,email_1 from beos where name = '" + ma + "'";
|
||||
result = await conn.query(query);
|
||||
}
|
||||
catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
finally {
|
||||
conn.end();
|
||||
}
|
||||
let erg = result[0];
|
||||
send2BEO({name: erg[0].vorname, email: erg[0].email_1, date: termin, id: id});
|
||||
}
|
||||
|
||||
|
||||
function send2BEO(info) {
|
||||
var mailOptions = {
|
||||
from: 'noreply@sternwarte-welzheim.de',
|
||||
// to: info.email,
|
||||
to: 'rexfue@gmail.com',
|
||||
subject: 'Sonderführung vom '+info.date,
|
||||
text: 'Hallo ' + info.name +',\n\n'
|
||||
+ 'Du hattest gestern Führung! '
|
||||
+ 'Bitte fülle folgendes Webformular aus:\n\n'
|
||||
+ Url + beo_Url + info.date + '&id=' + info.id
|
||||
+ '\n\nBitte nur über diesen Link zugreifen (oder exakt abschreiben),\n'
|
||||
+ 'da sonst die Zuordnung nicht hergestellt werden kann.\n'
|
||||
+ 'Besten Dank.\n\nGrüße vom Sonderführungsteam'
|
||||
};
|
||||
|
||||
transporter.sendMail(mailOptions, function (error, info) {
|
||||
if (error) {
|
||||
console.log(error);
|
||||
} else {
|
||||
console.log('Email gesendet an ' + mailOptions.to);
|
||||
// console.log(info);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log(DB_host, DB_port, DB_user, DB_pass, DB_dbase);
|
||||
const connection = await mysql.createConnection({
|
||||
// host: DB_host,
|
||||
// port: DB_port,
|
||||
user: DB_user,
|
||||
password: DB_pass,
|
||||
database: DB_dbase,
|
||||
socketPath: '/var/lib/mysql/mysql.sock'
|
||||
});
|
||||
const yesterday = moment().subtract(DAYS, 'd').format('YYYY-MM-DD');
|
||||
console.log('Yesterday:', yesterday)
|
||||
await fetchDatafromDB(connection, yesterday);
|
||||
console.log("All done");
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
Reference in New Issue
Block a user