FCLT#84767 Overstap Aareon naar Zendesk en benodigde API-koppelingen
svn path=/Website/branches/v2025.1/; revision=68162
This commit is contained in:
@@ -80,17 +80,17 @@ ANONYMOUS_Allowed = 1;
|
||||
http_request.open(req_conn.methode, req_conn.baseurl + req_conn.ext_url, false); // Synchroon
|
||||
switch (req_conn.methode)
|
||||
{
|
||||
case "POST": var body_data = req_data;
|
||||
case "POST": var body_data = (req_conn.actie == "attachment" ? req_data : JSON.stringify(req_data));
|
||||
http_request.setRequestHeader("Authorization", req_conn.auth);
|
||||
http_request.setRequestHeader("Accept", "application/json");
|
||||
http_request.setRequestHeader("Content-Type", req_conn.content);
|
||||
http_request.send(JSON.stringify(body_data));
|
||||
http_request.send(body_data);
|
||||
break;
|
||||
case "PUT": var body_data = req_data;
|
||||
case "PUT": var body_data = (req_conn.actie == "attachment" ? req_data : JSON.stringify(req_data));
|
||||
http_request.setRequestHeader("Authorization", req_conn.auth);
|
||||
http_request.setRequestHeader("Accept", "application/json");
|
||||
http_request.setRequestHeader("Content-Type", req_conn.content);
|
||||
http_request.send(JSON.stringify(body_data));
|
||||
http_request.send(body_data);
|
||||
break;
|
||||
case "GET": http_request.setRequestHeader("Authorization", req_conn.auth);
|
||||
http_request.setRequestHeader("Accept", "application/json");
|
||||
@@ -126,14 +126,14 @@ ANONYMOUS_Allowed = 1;
|
||||
|
||||
function callRequest(p_request, p_data_to_sent)
|
||||
{
|
||||
__Log("callRequest");
|
||||
__Log(">>callRequest");
|
||||
var bevinding = {};
|
||||
if (p_request.info.method != 'NONE')
|
||||
{
|
||||
var conn_params = getRequestParams(p_request.info.method, p_request.info.action, p_request);
|
||||
if (conn_params.success)
|
||||
{
|
||||
__Log({"conn_params": conn_params});
|
||||
__Log({"conn_params": conn_params.req_conn});
|
||||
if (p_request.info.noRequest)
|
||||
{
|
||||
bevinding = { result: { success: true
|
||||
@@ -145,7 +145,6 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//__Log({"doRequest": {"req_conn": conn_params.req_conn, "data_to_sent": p_data_to_sent}});
|
||||
var conn_result = doRequest(conn_params.req_conn, p_data_to_sent);
|
||||
if (conn_result.success)
|
||||
{
|
||||
@@ -183,27 +182,6 @@ ANONYMOUS_Allowed = 1;
|
||||
return bevinding;
|
||||
}
|
||||
|
||||
function streamdata(params, filedata)
|
||||
{
|
||||
var oStream = new ActiveXObject("ADODB.Stream");
|
||||
oStream.charset = "utf-8";
|
||||
oStream.Open();
|
||||
oStream.Type = 2; // adTypeText
|
||||
oStream.LineSeparator = -1;
|
||||
// Elke regel van WriteText wordt met CrLf afgesloten. Zet deze niet in de string want dan worden ze als lettertekens beschouwd.
|
||||
oStream.WriteText("", 1);
|
||||
oStream.WriteText("--" + params.info.boundary, 1);
|
||||
oStream.WriteText('Content-Disposition: form-data; name="file"; filename="' + params.info.filename + '"', 1); // LET OP: file en bestandsnaam MOETEN tussen dubbele quotes staan!
|
||||
oStream.WriteText("Content-Type: application/plain; charset=utf-8", 1);
|
||||
oStream.WriteText("Content-Transfer-Encoding: base64", 1);
|
||||
oStream.WriteText("", 1);
|
||||
oStream.WriteText(filedata, 1);
|
||||
oStream.WriteText("--" + params.info.boundary + "--", 1);
|
||||
oStream.Position = 0;
|
||||
//
|
||||
return oStream;
|
||||
}
|
||||
|
||||
function encryptAuth(api_user, api_key)
|
||||
{
|
||||
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
|
||||
@@ -247,6 +225,50 @@ ANONYMOUS_Allowed = 1;
|
||||
return obj_arr;
|
||||
}
|
||||
|
||||
function getMimeType(p_filename)
|
||||
{ // TODO: Zijn er extensies die binnen Facilitor meldingen/opdrachten niet ondersteund worden?
|
||||
// Deze moeten dan uit deze lijst.
|
||||
var mimetypes = { "webp": "image/webp"
|
||||
, "jpeg": "image/jpeg"
|
||||
, "jpg": "image/jpeg"
|
||||
, "png": "image/png"
|
||||
, "gif": "image/gif"
|
||||
, "bmp": "image/bmp"
|
||||
, "svg": "image/svg+xml"
|
||||
, "webm": "video/webm"
|
||||
, "mpeg": "video/mpeg"
|
||||
, "mp4": "video/mp4"
|
||||
, "m4v": "video/m4v"
|
||||
, "avi": "video/x-msvideo"
|
||||
, "mov": "video/quicktime"
|
||||
, "qt": "video/quicktime"
|
||||
, "weba": "audio/weba"
|
||||
, "mp3": "audio/mpeg"
|
||||
, "wav": "audio/wav"
|
||||
, "json": "application/json"
|
||||
, "rtf": "application/rtf"
|
||||
, "xml": "application/xml"
|
||||
, "rar": "application/vnd.rar"
|
||||
, "zip": "application/zip"
|
||||
, "7z": "application/x-7z-compressed"
|
||||
, "pdf": "application/pdf"
|
||||
, "csv": "application/csv"
|
||||
, "doc": "application/msword"
|
||||
, "ppt": "application/vnd.ms-powerpoint"
|
||||
, "xls": "application/vnd.ms-excel"
|
||||
, "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||||
, "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
||||
, "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
, "txt": "text/plain"
|
||||
, "js": "text/javascript"
|
||||
, "": null
|
||||
}
|
||||
var arr = p_filename.split(".");
|
||||
var ext = ((arr.length > 1) ? arr.pop() : "");
|
||||
var mimetype = mimetypes[ext];
|
||||
return mimetype;
|
||||
}
|
||||
|
||||
function load_headerdata()
|
||||
{
|
||||
__Log("load_headerdata");
|
||||
@@ -336,49 +358,6 @@ ANONYMOUS_Allowed = 1;
|
||||
return result.data.facilitor;
|
||||
}
|
||||
|
||||
function getMimeType(p_filename)
|
||||
{
|
||||
var mimetypes = { "webp": "image/webp"
|
||||
, "jpeg": "image/jpeg"
|
||||
, "jpg": "image/jpeg"
|
||||
, "png": "image/png"
|
||||
, "gif": "image/gif"
|
||||
, "bmp": "image/bmp"
|
||||
, "svg": "image/svg+xml"
|
||||
, "webm": "video/webm"
|
||||
, "mpeg": "video/mpeg"
|
||||
, "mp4": "video/mp4"
|
||||
, "m4v": "video/m4v"
|
||||
, "avi": "video/x-msvideo"
|
||||
, "mov": "video/quicktime"
|
||||
, "qt": "video/quicktime"
|
||||
, "weba": "audio/weba"
|
||||
, "mp3": "audio/mpeg"
|
||||
, "wav": "audio/wav"
|
||||
, "json": "application/json"
|
||||
, "rtf": "application/rtf"
|
||||
, "xml": "application/xml"
|
||||
, "rar": "application/vnd.rar"
|
||||
, "zip": "application/zip"
|
||||
, "7z": "application/x-7z-compressed"
|
||||
, "pdf": "application/pdf"
|
||||
, "csv": "application/csv"
|
||||
, "doc": "application/msword"
|
||||
, "ppt": "application/vnd.ms-powerpoint"
|
||||
, "xls": "application/vnd.ms-excel"
|
||||
, "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||||
, "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
||||
, "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
, "txt": "text/plain"
|
||||
, "js": "text/javascript"
|
||||
, "": null
|
||||
}
|
||||
var arr = p_filename.split(".");
|
||||
var ext = ((arr.length > 1) ? arr.pop() : "");
|
||||
var mimetype = mimetypes[ext];
|
||||
return mimetype;
|
||||
}
|
||||
|
||||
function getAction(p_action)
|
||||
{
|
||||
var actions = { "ticket": "/api/v2/tickets"
|
||||
@@ -395,7 +374,7 @@ ANONYMOUS_Allowed = 1;
|
||||
|
||||
function uploadAttachments(p_request, p_data)
|
||||
{
|
||||
__Log("uploadAttachments:");
|
||||
__Log("uploadAttachments");
|
||||
var v_success = true;
|
||||
var v_token_arr = [];
|
||||
var v_comment_arr = [];
|
||||
@@ -413,11 +392,11 @@ ANONYMOUS_Allowed = 1;
|
||||
v_request.info.filename = bijlage.name;
|
||||
v_request.info.filesize = bijlage.size;
|
||||
//
|
||||
var data_to_sent = streamdata(v_request, bijlage.attachment);
|
||||
var data_to_sent = XXXXDecode(bijlage.attachment, "bin.base64" ); // attachment is bij merge in xsl al base64 encoded. Nu decoden omdat de upload ook een encode doet.
|
||||
var bevinding = callRequest(v_request, data_to_sent);
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
v_comment_arr.push("Attachment " + bijlage.name + " ("+ bijlage.size +") toegevoegd.");
|
||||
v_comment_arr.push("Attachment [" + bijlage.name + " ("+ bijlage.size +")] toegevoegd.");
|
||||
v_token_arr.push(bevinding.data.upload.token);
|
||||
//bevinding.data.upload.attachment.id;
|
||||
//bevinding.data.upload.attachment.url;
|
||||
@@ -425,7 +404,7 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
v_comment_arr.push("Attachment " + bijlage.name + " ("+ bijlage.size +") kon niet worden toegevoegd,\n"
|
||||
v_comment_arr.push("Attachment [" + bijlage.name + " ("+ bijlage.size +")] kon niet worden toegevoegd,\n"
|
||||
+"status: " + bevinding.result.status + " " + bevinding.result.message
|
||||
);
|
||||
v_success = false;
|
||||
@@ -472,6 +451,7 @@ ANONYMOUS_Allowed = 1;
|
||||
|
||||
function getTicket(p_data, p_bijlagen)
|
||||
{
|
||||
__Log("getTicket");
|
||||
var v_data = {};
|
||||
v_data.ticket = cloneObject(p_data.opdracht);
|
||||
// custom_fields moet een array worden.
|
||||
@@ -510,12 +490,11 @@ ANONYMOUS_Allowed = 1;
|
||||
}
|
||||
|
||||
__Log("getTicketComment");
|
||||
// Zoek een waarde op en voeg die aan het object toe.
|
||||
var lookup_request = cloneObject(p_request);
|
||||
var v_lookup_list = cloneObject(p_data.lookup_list.lookup);
|
||||
if (v_lookup_list && getTypeOf(v_lookup_list) != "isArray") // TODO: functie object_to_array gebruiken
|
||||
{
|
||||
v_lookup_list = [v_lookup_list];
|
||||
var v_ticket = p_data.notitie;
|
||||
v_ticket.ticket.comment.body = shared.stripbbcodes(v_ticket.ticket.comment.body); // verwijder opmaak codes uit notitie
|
||||
if (p_bijlagen.length > 0)
|
||||
{ // bijlage tokens meegeven
|
||||
v_ticket.ticket.comment.uploads = p_bijlagen;
|
||||
}
|
||||
|
||||
var v_notitie = { result: { success: false
|
||||
@@ -523,30 +502,33 @@ ANONYMOUS_Allowed = 1;
|
||||
, message: "No comment found"
|
||||
}
|
||||
};
|
||||
var v_ticket = p_data.notitie;
|
||||
// Zoek een waarde op en voeg die aan het object toe.
|
||||
var lookup_request = cloneObject(p_request);
|
||||
var v_lookup_list = cloneObject(p_data.lookup_list.lookup);
|
||||
if (v_lookup_list && getTypeOf(v_lookup_list) != "isArray") // TODO: functie object_to_array gebruiken
|
||||
{
|
||||
v_lookup_list = [v_lookup_list];
|
||||
}
|
||||
for (var i=0; i<v_lookup_list.length; i++)
|
||||
{
|
||||
__Log("opzoeken: " + v_lookup_list[i].action);
|
||||
var lookup_data_to_sent = v_lookup_list[i].data;
|
||||
//__Log(lookup_data_to_sent);
|
||||
lookup_request.info = { method: v_lookup_list[i].method
|
||||
, action: v_lookup_list[i].action
|
||||
, noRequest: false // forceer dat opzoeken in ieder geval wel mag
|
||||
};
|
||||
__Log(lookup_request);
|
||||
__Log(lookup_data_to_sent);
|
||||
|
||||
var lookup_result = callRequest(lookup_request, lookup_data_to_sent);
|
||||
__Log(lookup_result);
|
||||
v_notitie.result = lookup_result.result;
|
||||
if (lookup_result.result.success)
|
||||
{ // Vul de waarde in die net is opgezocht.
|
||||
var v_lookup_value = getObjectValue(lookup_result.data, v_lookup_list[i].src);
|
||||
__Log("gevonden: " + v_lookup_value);
|
||||
v_ticket = setObjectValue(p_data, v_lookup_list[i].dest, v_lookup_value);
|
||||
}
|
||||
}
|
||||
|
||||
if (p_bijlagen.length > 0)
|
||||
{ // bijlage tokens meegeven
|
||||
v_ticket.comment.uploads = p_bijlagen;
|
||||
}
|
||||
v_notitie.notitie = v_ticket;
|
||||
return v_notitie;
|
||||
}
|
||||
@@ -592,10 +574,8 @@ __Log(lookup_result);
|
||||
var v_data = facilitor.zendesk.data;
|
||||
var v_request = facilitor.zendesk.request;
|
||||
v_request.api_auth = encryptAuth(v_request.api_user, v_request.api_key);
|
||||
__Log({"default v_request": v_request});
|
||||
|
||||
// eerst de bijlagen versturen
|
||||
abort_with_warning("STOP");
|
||||
bevinding = uploadAttachments(v_request, v_data);
|
||||
if (bevinding.result.success)
|
||||
{ // Er zijn geen bijlagen of alle bijlagen zijn succesvol geupload.
|
||||
@@ -608,7 +588,6 @@ abort_with_warning("STOP");
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
editResponseData("OPDRACHT", bevinding);
|
||||
bevinding.data.attach = "";
|
||||
update_mldopdr(v_request.info.method, v_request.info.action, bevinding.data.ticket);
|
||||
}
|
||||
break;
|
||||
@@ -616,13 +595,10 @@ abort_with_warning("STOP");
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
var data_to_sent = bevinding.notitie;
|
||||
__Log({"DTS": data_to_sent});
|
||||
bevinding = callRequest(v_request, data_to_sent);
|
||||
if (bevinding.result.success)
|
||||
{
|
||||
editResponseData("NOTITIE", bevinding);
|
||||
bevinding.data.attach = "**"
|
||||
__Log(bevinding);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -337,7 +337,9 @@ function mergeXMLAttachments2(iXml, p_xslPath, xmltag, keynaam, pNiveau, pModule
|
||||
{
|
||||
var node = NodeList[index];
|
||||
var meldingopdrachtkey = parseInt(trimall(node.attributes.getNamedItem(keynaam).text));
|
||||
if (pModule == "MLDN" || pModule == "ORDN")
|
||||
var bijlagemod = node.attributes.getNamedItem("bijlagemod")?(trimall(node.attributes.getNamedItem("bijlagemod").text)):"";
|
||||
var v_module = (bijlagemod?bijlagemod:pModule);
|
||||
if (v_module == "MLDN" || v_module == "ORDN")
|
||||
{
|
||||
var kenmerkkey = -1; // hardcoded
|
||||
}
|
||||
@@ -367,7 +369,7 @@ function mergeXMLAttachments2(iXml, p_xslPath, xmltag, keynaam, pNiveau, pModule
|
||||
+ " WHERE b.fac_bijlagen_root_key = r.fac_bijlagen_key"
|
||||
+ " AND b.fac_bijlagen_verwijder IS NULL"
|
||||
+ " AND r.fac_bijlagen_verwijder IS NULL"
|
||||
+ " AND b.fac_bijlagen_module = " + safe.quoted_sql(pModule)
|
||||
+ " AND b.fac_bijlagen_module = " + safe.quoted_sql(v_module)
|
||||
+ " AND b.fac_bijlagen_refkey = " + meldingopdrachtkey
|
||||
+ (kenmerkkey ? " AND b.fac_bijlagen_kenmerk_key = " + kenmerkkey : "")
|
||||
+ (bijlagekey ? " AND b.fac_bijlagen_key = " + bijlagekey : "");
|
||||
|
||||
@@ -190,6 +190,10 @@ function Base64fy(p_filename)
|
||||
var bytes = ReadBinaryFile(p_filename);
|
||||
var base64 = encodeBase64(bytes);
|
||||
}
|
||||
else
|
||||
{
|
||||
__Log("Cannot find file.");
|
||||
}
|
||||
return base64;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user