UNPKG

uc-base-libraries

Version:
240 lines 8.89 kB
System.register(["./DateTime", "./SiteInfo", "./Debug"], function (exports_1, context_1) { "use strict"; var DateTime, SiteInfo, Debug, callTypes; var __moduleName = context_1 && context_1.id; function addDataToUrl(url, name, value) { if (url.indexOf(name + '=') >= 0) { url = url.replace(name + '=', name + 'Old='); } if (url.indexOf('?') >= 0) { url = url + '&' + name + '=' + value; } else { url = url + '?' + name + '=' + value; } return url; } exports_1("addDataToUrl", addDataToUrl); function addFormatToUrl(url) { return addDataToUrl(url, 'Format', 'JSON'); } exports_1("addFormatToUrl", addFormatToUrl); function addAntiForgeryToken(data) { return data; } exports_1("addAntiForgeryToken", addAntiForgeryToken); function apiCall(type, url, sendData, successCallback, errorCallback, beforeSend) { let cntPiece = 'Cnt=' + DateTime.getTimeCount(); if (url.indexOf('?') !== -1) { cntPiece = '&' + cntPiece; } else { cntPiece = '?' + cntPiece; } let fUrl = url + cntPiece; if (url.indexOf('://') <= 0) { if (url.indexOf(SiteInfo.virtualUrl()) === 0) { url = url.replace(SiteInfo.virtualUrl(), ''); } if (url.lastIndexOf('/', 0) === 0) { url = url.substring(1); } if (url.indexOf(SiteInfo.virtualUrl()) === 0) { url = url.replace(SiteInfo.virtualUrl(), ''); } fUrl = SiteInfo.getVirtualURL(url) + cntPiece; } fUrl = fUrl.replaceAll('//', '/').replaceAll(':/', '://'); let pd = true; let sd = sendData; let contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; if (sendData instanceof FormData) { contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; contentType = false; pd = false; } else if (sendData instanceof Blob) { contentType = 'application/octet-stream'; pd = false; } else if (typeof sendData === 'object') { contentType = 'application/json; charset=utf-8'; sd = JSON.stringify(sendData); } if ($) { $.ajax({ url: fUrl, processData: pd, beforeSend: (request) => { if (beforeSend) { beforeSend(request); } }, type: callTypes[type], data: sd, dataType: 'json', contentType, xhrFields: { withCredentials: true, }, success: (data, textStatus, jqXHR) => { if (successCallback) { successCallback(data, textStatus, jqXHR); } }, error: (jqXHR, textStatus, errorThrown) => { if (errorCallback) { errorCallback(jqXHR, textStatus, errorThrown); } }, }); } } exports_1("apiCall", apiCall); function getCallAsync(url, seqNum, sendData = null, beforeSend) { return new Promise((resolve, reject) => { getCall(url, seqNum, sendData, (data, seq) => { resolve(data); }, (jqXHR, extStatus, errorThrown) => { reject(Error(jqXHR, extStatus, errorThrown)); }, beforeSend); }); } exports_1("getCallAsync", getCallAsync); function putCallAsync(url, seqNum, sendData, beforeSend) { return new Promise((resolve, reject) => { putCall(url, seqNum, sendData, (data, seq) => { resolve(data); }, (jqXHR, extStatus, errorThrown) => { reject(Error(jqXHR, extStatus, errorThrown)); }, beforeSend); }); } exports_1("putCallAsync", putCallAsync); function postCallAsync(url, seqNum, sendData, beforeSend) { return new Promise((resolve, reject) => { postCall(url, seqNum, sendData, (data, seq) => { resolve(data); }, (jqXHR, extStatus, errorThrown) => { reject(Error(jqXHR, extStatus, errorThrown)); }, beforeSend); }); } exports_1("postCallAsync", postCallAsync); function deleteCallAsync(url, seqNum, sendData, beforeSend) { return new Promise((resolve, reject) => { deleteCall(url, seqNum, sendData, (data, seq) => { resolve(data); }, (jqXHR, extStatus, errorThrown) => { reject(Error(jqXHR, extStatus, errorThrown)); }, beforeSend); }); } exports_1("deleteCallAsync", deleteCallAsync); function getCall(url, seqNum, sendData, successCallback, errorCallback, beforeSend) { if (!seqNum) { seqNum = DateTime.getTimeCount(); } apiCall(callTypes.GET, url, sendData, (data, textStatus, request) => { const seq = parseInt(request.getResponseHeader('seq'), 10); if (successCallback) { successCallback(data, seq); } }, errorCallback, (request) => { request.setRequestHeader('seq', '' + seqNum); if (beforeSend) { beforeSend(request); } }); } exports_1("getCall", getCall); function putCall(url, seqNum, sendData, successCallback, errorCallback, beforeSend) { if (!seqNum) { seqNum = DateTime.getTimeCount(); } sendData = sendData || {}; addAntiForgeryToken(sendData); apiCall(callTypes.PUT, url, sendData, (data, textStatus, request) => { const seq = parseInt(request.getResponseHeader('seq'), 10); if (successCallback) { successCallback(data, seq); } }, errorCallback, (request) => { request.setRequestHeader('seq', '' + seqNum); if (beforeSend) { beforeSend(request); } }); } exports_1("putCall", putCall); function postCall(url, seqNum, sendData, successCallback, errorCallback, beforeSend) { if (!seqNum) { seqNum = DateTime.getTimeCount(); } sendData = sendData || {}; addAntiForgeryToken(sendData); apiCall(callTypes.POST, url, sendData, (data, textStatus, request) => { const seq = parseInt(request.getResponseHeader('seq'), 10); if (successCallback) { successCallback(data, seq); } }, errorCallback, (request) => { request.setRequestHeader('seq', '' + seqNum); if (beforeSend) { beforeSend(request); } }); } exports_1("postCall", postCall); function deleteCall(url, seqNum, sendData, successCallback, errorCallback, beforeSend) { if (!seqNum) { seqNum = DateTime.getTimeCount(); } sendData = sendData || {}; addAntiForgeryToken(sendData); apiCall(callTypes.DELETE, url, sendData, (data, textStatus, request) => { const seq = parseInt(request.getResponseHeader('seq'), 10); if (successCallback) { successCallback(data, seq); } }, errorCallback, (request) => { request.setRequestHeader('seq', '' + seqNum); if (beforeSend) { beforeSend(request); } }); } exports_1("deleteCall", deleteCall); function Error(jqXHR, textStatus, errorThrown) { Debug.debugWrite(errorThrown); const err = {}; err.errorThrown = errorThrown; err.textStatus = textStatus; err.responseText = jqXHR.responseText; err.responseObj = jqXHR.responseJSON; return err; } return { setters: [ function (DateTime_1) { DateTime = DateTime_1; }, function (SiteInfo_1) { SiteInfo = SiteInfo_1; }, function (Debug_1) { Debug = Debug_1; } ], execute: function () { (function (callTypes) { callTypes[callTypes["GET"] = 0] = "GET"; callTypes[callTypes["PUT"] = 1] = "PUT"; callTypes[callTypes["POST"] = 2] = "POST"; callTypes[callTypes["DELETE"] = 3] = "DELETE"; })(callTypes || (callTypes = {})); exports_1("callTypes", callTypes); } }; }); //# sourceMappingURL=ApiLibrary.js.map