Files
Facilitor/UTILS/Exchange/process_webhooks.wsf
Jos Groot Lipman dd470b6a93 FCLT#88543 Tasker 'late' onderzoek Oracle sluiten
svn path=/Website/branches/v2025.1/; revision=68789
2025-04-17 11:53:48 +00:00

100 lines
3.7 KiB
XML

<![CDATA[
/*
$Id$
File: process_webhooks.wsf
Calling: cscript ..\..\..\utils\exchange\process_webhooks.wsf
Context: Scheduled task
Description: Maakt voor alle res_ruimte's een webhook waar we notificaties op gaan krijgen
Note: De code veronderstelt (nog) dat de current folder een cust/xxxx/exchange folder is
Concreter: ../Oracle.udl wordt gebruikt
*/
]]>
<job id="exchange_webhooks">
<script language="JScript" src="../wsf_shared.js"/>
<script language="JScript" src="../json2.js"/>
<script language="JScript" src="ms_graph.js"/>
<script language="JScript" src="exchange_graph.js"/>
<script language="JScript" src="../../appl/imp/imp_shared.js"/>
<script language="JScript" src="process_webhook.js"/>
<script language="JScript">
/* global */ var custabspath = fso.GetAbsolutePathName("../");
var config = loadconfig("exchange.config");
var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open('File Name=../oracle.udl'); //../Oracle.udl
var token = requestToken(config);
var sql = "BEGIN DBMS_APPLICATION_INFO.SET_MODULE ('process_webhooks.wsf', NULL); END;";
var oRs = Oracle.Execute(sql);
// Determine customerId
sql = "SELECT fac_version_cust FROM fac_version";
oRs = Oracle.Execute(sql);
var customerId = oRs("fac_version_cust").Value;
oRs.Close();
// Get the api-(user)key
sql = "SELECT prs_perslid_key FROM prs_perslid WHERE prs_perslid_oslogin = '_MSGRAPHNOTIFICATION'";
oRs = Oracle.Execute(sql);
var user_key = oRs("prs_perslid_key").Value;
oRs.Close();
sql = "SELECT f.fac_notificatie_key,"
+ " f.fac_notificatie_refkey,"
+ " rr.res_ruimte_extern_id,"
+ " f.fac_notificatie_attachments"
+ " FROM fac_notificatie f"
+ " JOIN res_ruimte rr ON rr.res_ruimte_key = f.fac_notificatie_refkey"
+ " WHERE f.fac_notificatie_queue = 'EXCHANGE'"
//+ " AND f.fac_notificatie_notbefore <= SYSDATE"
+ " ORDER BY f.fac_notificatie_key";
function deleteNotification(noti_key) {
var sql2 = "DELETE fac_notificatie"
+ " WHERE fac_notificatie_key = " + noti_key;
var oRs2 = Oracle.Execute(sql2);
}
while (true) {
oRs = Oracle.Execute(sql);
if (oRs.EOF) {
oRs.Close();
break;
}
while (!oRs.EOF) {
var logfile_path = oRs("fac_notificatie_attachments").Value;
var res_ruimte_key = oRs("fac_notificatie_refkey").Value;
var zaalemail = oRs("res_ruimte_extern_id").Value;
var notidata = "";
try {
var ts = fso.OpenTextFile(logfile_path, 1);
notidata = JSON.parse(ts.ReadAll());
ts.Close();
fso.DeleteFile(logfile_path);
} catch (e) {
__DoLog("Error reading or deleting notification.data file", "#FF0000");
__DoLog(e.description);
deleteNotification(oRs("fac_notificatie_key").Value);
oRs.MoveNext();
continue;
}
process_webhook(res_ruimte_key, zaalemail, notidata);
deleteNotification(oRs("fac_notificatie_key").Value);
oRs.MoveNext();
}
oRs.Close();
}
Oracle.Close();
</script>
</job>