var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Unibase; (function (Unibase) { let Platform; (function (Platform) { let DataApis; (function (DataApis) { let Components; (function (Components) { class ApiBuilder extends Platform.Core.BaseComponent { cssFiles() { return ["libs/querybuilder/query-builder.default.css", "libs/summernote/summernote.css"]; } jsFiles() { return ["platform/dataapis/components/apibuilder.js", "platform/dataapis/managers/dataapimanager.js", "platform/apps/managers/appmanager.js", "platform/analytics/managers/reportmanager.js", "platform/forms/managers/formmanager.js", "libs/querybuilder/query-builder.min.js", "libs/querybuilder/query-builder.standalone.min.js", "platform/dataapis/enums/executiontype.js", "platform/dataapis/enums/requesttype.js", "libs/handlebars/handlebars.min.js", "platform/dataapis/components/apibuilder.template.js", "platform/integrations/components/createprovider.js", "platform/dataapis/enums/apitype.js", "platform/dataapis/components/apibuilder.template.js", "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', "libs/summernote/summernote.min.js", "platform/analytics/enums/datatype.js", "platform/core/helpers/file/filehelper.js", "platform/integrations/enums/methodtype.js"]; } html(id, containerid) { let html = '
'; return html; } load(id, containerid, callback) { if (ApiBuilder.isIntegration == false) { Unibase.Platform.DataApis.Components.ApiBuilder_Template.Instance().loadSummernote(); ApiBuilder.Instance().getInstalledApps(); $(".ddl_executionType").addClass("required"); ApiBuilder.Instance().getPreview(); jQuery("#btnSave").click(function () { if (ApiBuilder.isIntegration == false) { let appcontrolid = "frmUnibase_DataApi"; let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid); if (result == false) { MessageHelper.Instance().showError("Mandatory fields are missing", "Unibase_ValidationSummary"); return false; } else { ApiBuilder.Instance().save(id, containerid); } } }); if ($(window).width() <= 800) { $("#div_methodParams_header").hide(); } } $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".queryBuilder").addClass("hidden"); } loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { this.render(Pk_Value); } loadDataApiForm(iscreate) { var Pk_Value = 0; if (!iscreate) { Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId; } this.render(Pk_Value); } render(Pk_Value) { return __awaiter(this, void 0, void 0, function* () { var instance = this; instance.fileCacheHelper.loadJsFiles(["platform/dataapis/managers/dataapimanager.js", "libs/querybuilder/query-builder.standalone.min.js", "platform/dataapis/components/apibuilder.template.js"], null); if (ApiBuilder.isIntegration == false) { instance.navigationHelper.popup(0, '', Unibase.Platform.DataApis.Components.ApiBuilder.Instance(), null, Platform.Helpers.Size.Large); $(".api-builder-body").attr("data-simplebar"); $(".ddl_executionType option[value='5']").addClass("hidden"); } else { $(".api-builder-body").removeAttr("data-simplebar"); var html = Unibase.Platform.DataApis.Components.ApiBuilder_Template.Instance().loadDataApiTemplate(ApiBuilder.serviceIndex); $(".div_dataApi_" + ApiBuilder.serviceIndex).find("#div_dataApi_" + ApiBuilder.serviceIndex).html(html); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".dataApiHeader").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#dataApi_FirstDiv").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-urlPreview").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-description").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApiFooter").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").addClass("hidden"); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".apiBuilder-UniqueKey").addClass("hidden"); $(".ddl_executionType").removeClass("required"); $(".ddl_executionType option[value='5']").removeClass("hidden"); $("#spnExecutionType").text(""); } $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".queryBuilder").addClass("hidden"); if (Pk_Value != 0) { $("#formName").text("Edit Data Api"); ApiBuilder.Instance().edit(Pk_Value); } $(".api-builder-fromBodyParameterPreview").addClass("hidden"); ApiBuilder.Instance().toRestrictSpecialCharacters(); ApiBuilder.Instance().getParametersPreview(ApiBuilder.serviceIndex); ApiBuilder.Instance().getInstalledApps(); $("#txt_UniqueId").keypress(function (e) { var k = e.keyCode, $return = ((k > 94 && k < 123) || (k > 47 && k < 58)); if (!$return) { return false; } }); $(".sortable").sortable({ update: function (event, ui) { ApiBuilder.Instance().getPreview(); ApiBuilder.Instance().getParametersPreview(ApiBuilder.serviceIndex); } }); $(".sortable").disableSelection(); }); } refreshApis() { $("#api_spin").addClass("fa-spin"); Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().refreshDataApis().then(function (response) { }); setTimeout(function () { $("#api_spin").removeClass("fa-spin"); }, 1000); } toRestrictSpecialCharacters() { $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".restrictChar").keypress(function (e) { var k = e.keyCode, $return = (((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57)) && e.which !== 32); if (!$return) { return false; } }); } getInstalledApps() { var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/installedappautocomplete'; AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_installedApp"), "#hfAutoComplete_installedApp", url, function (response) { var data = response; }); } getChildParams() { var instance = this; $(".div_Toggle").on("click", function (e) { let name = e.target.firstElementChild.textContent; let type = e.target.lastElementChild.textContent; let paramType = type.split(','); if (paramType[0].includes('List')) { var dtype = paramType[0].split('[['); paramType[0] = dtype[1]; } Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getProperties(paramType[0]).then(function (response) { var data = response.result; var requestJson = JSON.parse(data); ApiBuilder.Instance().childObject(e, name, requestJson); }); }); } uniqueKey() { let type; (function (type) { type[type["select"] = 2] = "select"; type[type["action"] = 3] = "action"; type[type["delete"] = 5] = "delete"; })(type || (type = {})); ; var requestType = $("#hf_actionType").val() != "" ? type[Number($("#hf_actionType").val())] + "_" : ""; var executionType = ""; if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType option:selected").val() != 0) { executionType = $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType option:selected").text() + "_"; } var parameters = ""; if (ApiBuilder.paramNames.length != 0) { var params = ApiBuilder.paramNames; for (var i = 0; i < params.length; i++) { parameters += "_" + params[i].param; } } var uniqueId = executionType + requestType + ($("#txtPackageName").val().toString() != "" ? $("#txtPackageName").val().toString() + "_" : "") + ($("#txtAppName").val().toString() != "" ? $("#txtAppName").val().toString() + "_" : "") + ($("#txtModuleName").val().toString() != "" ? $("#txtModuleName").val().toString() + "_" : "") + ($("#txtMethodName").val().toString() != "" ? $("#txtMethodName").val().toString() : "") + parameters; $("#txt_UniqueId").val(uniqueId.toLowerCase()); $("#txt_UniqueId").attr('readonly', 'readonly'); } editUniqueKey() { $("#txt_UniqueId").removeAttr('readonly'); } getParametersPreview(serviceIndex) { ApiBuilder.serviceIndex = serviceIndex; $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").html(""); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () { if ($(this).find(".chk_FromUrl").prop("checked") == false) { $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").append("" + contents + "
").text(); var description = plainText; let param1 = "", param2 = "", param3 = "", param4 = "", param5 = "", param6 = "", param7 = "", param8 = ""; let ParamNames = ApiBuilder.paramNames; for (var i = 0; i < ParamNames.length; i++) { if (ParamNames[i].param != "") { if (param1 == "") { param1 = ParamNames[i].param; } else if (param2 == "") { param2 = ParamNames[i].param; } else if (param3 == "") { param3 = ParamNames[i].param; } else if (param4 == "") { param4 = ParamNames[i].param; } else if (param5 == "") { param5 = ParamNames[i].param; } else if (param6 == "") { param6 = ParamNames[i].param; } else if (param7 == "") { param7 = ParamNames[i].param; } else { param8 = ParamNames[i].param; } } } ; var hasIdValue = ParamNames.length == 1 ? $("#chk_HasIdValue").prop("checked") : false; let mappingJson = ApiBuilder.Instance().mappingJson(); var idValue = $("#txt_selectedType").val().toString(); var methodProviderId = 0; var requestTypeId = 0; if (Number($("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Method) { idValue = "0"; methodProviderId = Number($("#txt_selectedMethod").val()); requestTypeId = Number($("#hf_requestTypeId").val()); } else if (Number($("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Report) { requestTypeId = Number($("#ddl_requestType").val()); } else { requestTypeId = Number(Unibase.Platform.DataApis.Enums.RequestType.Post); } var uniqueid = "apibuilder_" + apiName + "_" + packageName + "_" + appName + "_" + moduleName + "_" + apiName; var recordId = Unibase.Platform.Analytics.Components.ReportViewer.Instance().RecordId == undefined ? 0 : Unibase.Platform.Analytics.Components.ReportViewer.Instance().RecordId; var ebableLog = $("#chkEnableLog").prop("checked"); var postData = { DataApiId: Number($("#hf_dataApiId").val()), MethodProviderId: methodProviderId, ApiName: apiName, PackageName: packageName, ModuleName: moduleName, MethodName: methodName, AppName: appName, IdValue: idValue, UniqueId: $("#txt_UniqueId").val().toString(), ExecutionTypeId: Number($("#ddl_executionType").val()), RequestTypeId: requestTypeId, Description: description, InstalledAppId: installedAppId, MappingJson: mappingJson, ParamName1: param1, ParamName2: param2, ParamName3: param3, ParamName4: param4, ParamName5: param5, ParamName6: param6, ParamName7: param7, ParamName8: param8, StaticFilter: ApiBuilder.staticFiler, ApiTypeId: Number(Unibase.Platform.DataApis.Enums.ApiType.DataApi), HasIdValue: hasIdValue, EnableLog: ebableLog }; Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().saveDataApi(postData).then(function (response) { if (response.errors != null) { MessageHelper.Instance().showError(response.message, "Unibase_ValidationSummary"); return false; } else { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); alert(response.message); } }); } edit(dataApiId) { Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getDataApiExecutionData(dataApiId).then(function (response) { $("#hf_dataApiId").val(response.result.DataApiId); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val(response.result.ExecutionTypeId); $("#txtApiName").val(response.result.ApiName); $("#txtPackageName").val(response.result.PackageName); $("#txtAppName").val(response.result.AppName); $("#txtModuleName").val(response.result.ModuleName); if (response.result.AppTitle == null) { var option = new Option("", "", true); } else { option = new Option(response.result.AppTitle, response.result.InstalledAppId.toString(), true); } $("#txt_installedApp").append(option); $("#chkEnableLog").prop("checked", response.result.EnableLog); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find('#summernote').summernote('code', response.result.Description); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_UniqueId").val(response.result.UniqueId); ApiBuilder.Instance().getTypeData(ApiBuilder.serviceIndex, response.result); $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () { if (response.result.ParamName1 == $(this).find("#div_Name").text() || response.result.ParamName2 == $(this).find("#div_Name").text() || response.result.ParamName3 == $(this).find("#div_Name").text() || response.result.ParamName4 == $(this).find("#div_Name").text() || response.result.ParamName5 == $(this).find("#div_Name").text() || response.result.ParamName6 == $(this).find("#div_Name").text() || response.result.ParamName7 == $(this).find("#div_Name").text() || response.result.ParamName8 == $(this).find("#div_Name").text()) { $(this).find("input:checkbox").prop("checked", true); } }); if (response.result.ExecutionTypeId == Number(Unibase.Platform.DataApis.Enums.ExecutionType.Report)) { ApiBuilder.staticFiler = response.result.StaticFilter; ApiBuilder.paramNames.push({ param: response.result.ParamName1, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName2, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName3, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName4, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName5, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName6, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName7, index: ApiBuilder.serviceIndex }); ApiBuilder.paramNames.push({ param: response.result.ParamName8, index: ApiBuilder.serviceIndex }); } if (response.result.ExecutionTypeId == Number(Unibase.Platform.DataApis.Enums.ExecutionType.Form)) { ApiBuilder.Instance().bindSubFormPropertiesData(response.result); } }); } loadImportAndExport() { const html = ''; var portletwidgetid = Number($("#hf_PortletWidgetId").val()); $("#divAppWidgets").empty(); $(".div_portletwidget_" + portletwidgetid).append(html); $("#btn_Export").click(function () { $("#div_Export").removeClass("hidden"); $("#importexportsection").addClass("hidden"); $("#div_Import").addClass("hidden"); $("#div_errorlog").addClass("hidden"); }); $("#btn_Import").click(function () { $("#importexportsection").removeClass("hidden"); $("#div_Import").removeClass("hidden"); $("#div_Export").addClass("hidden"); $("#div_errorlog").addClass("hidden"); }); $('input[type="file"]').change(function (e) { ApiBuilder.Instance().fileEvent(e); }); } fileEvent($event) { const fileSelected = $event.target.files[0]; ApiBuilder.fileData = new FormData(); ApiBuilder.fileData.append(fileSelected.name, fileSelected); } exportDataApis() { var recordId = Unibase.Platform.Analytics.Components.ReportViewer.Instance().InstalledAppId; Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().exportDataApis(recordId).then(function (response) { var filename = "Industry.xml"; var xmltext = response.result; var pom = document.createElement('a'); var bb = new Blob([xmltext], { type: 'text/plain' }); pom.setAttribute('href', window.URL.createObjectURL(bb)); pom.setAttribute('download', filename); pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':'); pom.draggable = true; pom.classList.add('dragout'); pom.click(); }); } importdataapis() { const url = _appsettings.server_url() + '/apis/v4/unibase/platform/dataapis/import/np'; var response = Unibase.Platform.Helpers.FileHelper.Instance().upload(url, ApiBuilder.fileData); } static Instance() { return new ApiBuilder(); } } ApiBuilder.isIntegration = false; ApiBuilder.serviceIndex = 0; ApiBuilder.paramNames = []; ApiBuilder.requestType = 0; ApiBuilder.fileData = new FormData(); Components.ApiBuilder = ApiBuilder; })(Components = DataApis.Components || (DataApis.Components = {})); })(DataApis = Platform.DataApis || (Platform.DataApis = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));