Built files from Bizgaze WebServer
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

apibuilder.js 107KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Platform;
  13. (function (Platform) {
  14. let DataApis;
  15. (function (DataApis) {
  16. let Components;
  17. (function (Components) {
  18. class ApiBuilder extends Platform.Core.BaseComponent {
  19. cssFiles() {
  20. return ["libs/querybuilder/query-builder.default.css", "libs/summernote/summernote.css"];
  21. }
  22. jsFiles() {
  23. 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"];
  24. }
  25. html(id, containerid) {
  26. let html = '<form id="frmUnibase_DataApi" default="" data-validate="parsley" data-isdynamic="false">' +
  27. Unibase.Platform.DataApis.Components.ApiBuilder_Template.Instance().loadDataApiTemplate(ApiBuilder.serviceIndex)
  28. + '</form>';
  29. return html;
  30. }
  31. load(id, containerid, callback) {
  32. if (ApiBuilder.isIntegration == false) {
  33. Unibase.Platform.DataApis.Components.ApiBuilder_Template.Instance().loadSummernote();
  34. ApiBuilder.Instance().getInstalledApps();
  35. $(".ddl_executionType").addClass("required");
  36. ApiBuilder.Instance().getPreview();
  37. jQuery("#btnSave").click(function () {
  38. if (ApiBuilder.isIntegration == false) {
  39. let appcontrolid = "frmUnibase_DataApi";
  40. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  41. if (result == false) {
  42. MessageHelper.Instance().showError("Mandatory fields are missing", "Unibase_ValidationSummary");
  43. return false;
  44. }
  45. else {
  46. ApiBuilder.Instance().save(id, containerid);
  47. }
  48. }
  49. });
  50. if ($(window).width() <= 800) {
  51. $("#div_methodParams_header").hide();
  52. }
  53. }
  54. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".queryBuilder").addClass("hidden");
  55. }
  56. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  57. this.render(Pk_Value);
  58. }
  59. loadDataApiForm(iscreate) {
  60. var Pk_Value = 0;
  61. if (!iscreate) {
  62. Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId;
  63. }
  64. this.render(Pk_Value);
  65. }
  66. render(Pk_Value) {
  67. return __awaiter(this, void 0, void 0, function* () {
  68. var instance = this;
  69. instance.fileCacheHelper.loadJsFiles(["platform/dataapis/managers/dataapimanager.js", "libs/querybuilder/query-builder.standalone.min.js", "platform/dataapis/components/apibuilder.template.js"], null);
  70. if (ApiBuilder.isIntegration == false) {
  71. instance.navigationHelper.popup(0, '', Unibase.Platform.DataApis.Components.ApiBuilder.Instance(), null, Platform.Helpers.Size.Large);
  72. $(".api-builder-body").attr("data-simplebar");
  73. $(".ddl_executionType option[value='5']").addClass("hidden");
  74. }
  75. else {
  76. $(".api-builder-body").removeAttr("data-simplebar");
  77. var html = Unibase.Platform.DataApis.Components.ApiBuilder_Template.Instance().loadDataApiTemplate(ApiBuilder.serviceIndex);
  78. $(".div_dataApi_" + ApiBuilder.serviceIndex).find("#div_dataApi_" + ApiBuilder.serviceIndex).html(html);
  79. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".dataApiHeader").addClass("hidden");
  80. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#dataApi_FirstDiv").addClass("hidden");
  81. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-urlPreview").addClass("hidden");
  82. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-description").addClass("hidden");
  83. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApiFooter").addClass("hidden");
  84. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").addClass("hidden");
  85. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".apiBuilder-UniqueKey").addClass("hidden");
  86. $(".ddl_executionType").removeClass("required");
  87. $(".ddl_executionType option[value='5']").removeClass("hidden");
  88. $("#spnExecutionType").text("");
  89. }
  90. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".queryBuilder").addClass("hidden");
  91. if (Pk_Value != 0) {
  92. $("#formName").text("Edit Data Api");
  93. ApiBuilder.Instance().edit(Pk_Value);
  94. }
  95. $(".api-builder-fromBodyParameterPreview").addClass("hidden");
  96. ApiBuilder.Instance().toRestrictSpecialCharacters();
  97. ApiBuilder.Instance().getParametersPreview(ApiBuilder.serviceIndex);
  98. ApiBuilder.Instance().getInstalledApps();
  99. $("#txt_UniqueId").keypress(function (e) {
  100. var k = e.keyCode, $return = ((k > 94 && k < 123) || (k > 47 && k < 58));
  101. if (!$return) {
  102. return false;
  103. }
  104. });
  105. $(".sortable").sortable({
  106. update: function (event, ui) {
  107. ApiBuilder.Instance().getPreview();
  108. ApiBuilder.Instance().getParametersPreview(ApiBuilder.serviceIndex);
  109. }
  110. });
  111. $(".sortable").disableSelection();
  112. });
  113. }
  114. refreshApis() {
  115. $("#api_spin").addClass("fa-spin");
  116. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().refreshDataApis().then(function (response) {
  117. });
  118. setTimeout(function () {
  119. $("#api_spin").removeClass("fa-spin");
  120. }, 1000);
  121. }
  122. toRestrictSpecialCharacters() {
  123. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".restrictChar").keypress(function (e) {
  124. var k = e.keyCode, $return = (((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57)) && e.which !== 32);
  125. if (!$return) {
  126. return false;
  127. }
  128. });
  129. }
  130. getInstalledApps() {
  131. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/installedappautocomplete';
  132. AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_installedApp"), "#hfAutoComplete_installedApp", url, function (response) {
  133. var data = response;
  134. });
  135. }
  136. getChildParams() {
  137. var instance = this;
  138. $(".div_Toggle").on("click", function (e) {
  139. let name = e.target.firstElementChild.textContent;
  140. let type = e.target.lastElementChild.textContent;
  141. let paramType = type.split(',');
  142. if (paramType[0].includes('List')) {
  143. var dtype = paramType[0].split('[[');
  144. paramType[0] = dtype[1];
  145. }
  146. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getProperties(paramType[0]).then(function (response) {
  147. var data = response.result;
  148. var requestJson = JSON.parse(data);
  149. ApiBuilder.Instance().childObject(e, name, requestJson);
  150. });
  151. });
  152. }
  153. uniqueKey() {
  154. let type;
  155. (function (type) {
  156. type[type["select"] = 2] = "select";
  157. type[type["action"] = 3] = "action";
  158. type[type["delete"] = 5] = "delete";
  159. })(type || (type = {}));
  160. ;
  161. var requestType = $("#hf_actionType").val() != "" ? type[Number($("#hf_actionType").val())] + "_" : "";
  162. var executionType = "";
  163. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType option:selected").val() != 0) {
  164. executionType = $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType option:selected").text() + "_";
  165. }
  166. var parameters = "";
  167. if (ApiBuilder.paramNames.length != 0) {
  168. var params = ApiBuilder.paramNames;
  169. for (var i = 0; i < params.length; i++) {
  170. parameters += "_" + params[i].param;
  171. }
  172. }
  173. 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;
  174. $("#txt_UniqueId").val(uniqueId.toLowerCase());
  175. $("#txt_UniqueId").attr('readonly', 'readonly');
  176. }
  177. editUniqueKey() {
  178. $("#txt_UniqueId").removeAttr('readonly');
  179. }
  180. getParametersPreview(serviceIndex) {
  181. ApiBuilder.serviceIndex = serviceIndex;
  182. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").html("");
  183. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  184. if ($(this).find(".chk_FromUrl").prop("checked") == false) {
  185. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").append("<div class='col-sm-8' id='div_FromBodyParams_" + $(this).find("#div_Name").text() + "'><span class='col-sm-3'>'" + $(this).find(".txtAliasName").val() + "'</span><span class='col-sm-1'>:</span><span class='col-sm-4'>'" + $(this).find("#div_Type").text() + "'</span></div>");
  186. }
  187. });
  188. }
  189. getPreview() {
  190. let service_url = window.origin + "/apis/v4/";
  191. let data = ($("#txtMethodName").val().toString() != "" ? $("#txtMethodName").val().toString() : "");
  192. let params = "";
  193. if ($("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Method) {
  194. ApiBuilder.paramNames = [];
  195. $("#methodParams").find(".added-item").each(function () {
  196. if ($(this).find(".chk_FromUrl").prop("checked") == true || $(this).find(".chk_FromUrl").prop("checked") == undefined) {
  197. var aliasName = ($(this).find(".txtAliasName").val() != "" ? $(this).find(".txtAliasName").val() + "/" : "");
  198. if ($(this).find("#chk_HasIdValue").prop("checked") == true) {
  199. aliasName = "";
  200. }
  201. ApiBuilder.paramNames.push({
  202. param: $(this).find("#div_Name").text(), index: ApiBuilder.serviceIndex
  203. });
  204. params += aliasName + "{" + $(this).find("#div_Name").text() + "}/";
  205. }
  206. });
  207. data = ($("#txtMethodName").val().toString() != "" ? $("#txtMethodName").val().toString() + "/" : "") + (params != "" ? params : "");
  208. if (data.includes('/'))
  209. data = data.substring(0, data.length - 1);
  210. }
  211. var reportParams = "";
  212. if ($("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Report) {
  213. $("#div_fromBodyParameters").html("");
  214. if ($("#Output").html() != "" && $("#Output").html() != undefined) {
  215. ApiBuilder.paramNames = [];
  216. var reportFilters = JSON.parse($("#Output").html());
  217. var parameterIndex = 1;
  218. reportColumns(reportFilters);
  219. function reportColumns(reportFilters) {
  220. if (reportFilters.rules.length != 0) {
  221. for (var i = 0; i < reportFilters.rules.length; i++) {
  222. let paramName = reportFilters.rules[i].id;
  223. let value = reportFilters.rules[i].value;
  224. if (paramName != undefined) {
  225. if (parameterIndex <= 8) {
  226. if (value.includes('{' && '}')) {
  227. reportParams += "/" + value.substring(1, value.length - 1) + "/" + value;
  228. ApiBuilder.paramNames.push({ param: value.substring(1, value.length - 1), index: ApiBuilder.serviceIndex });
  229. }
  230. else if (value.includes('[' && ']')) {
  231. $("#div_fromBodyParameters").append("<div class='col-sm-8' id='div_FromBodyParams_" + paramName + "'><span class='col-sm-3'>'" + value.substring(1, value.length - 1) + "'</span><span class='col-sm-1'>:</span><span class='col-sm-4'>'" + value + "'</span></div>");
  232. }
  233. parameterIndex++;
  234. }
  235. }
  236. else {
  237. if (reportFilters.rules[i].length != 0) {
  238. reportColumns(reportFilters.rules[i]);
  239. }
  240. }
  241. }
  242. }
  243. }
  244. }
  245. }
  246. let request = "";
  247. if ($("#ddl_executionType option:selected").val() == Number(Unibase.Platform.DataApis.Enums.ExecutionType.Form)) {
  248. ApiBuilder.requestType = Number(Unibase.Platform.DataApis.Enums.RequestType.Post);
  249. }
  250. $("#txtApiPreview").text(request + service_url + ($("#txtPackageName").val().toString() != "" ? $("#txtPackageName").val().toString() + "/" : "") + ($("#txtAppName").val().toString() != "" ? $("#txtAppName").val().toString() + "/" : "") + ($("#txtModuleName").val().toString() != "" ? $("#txtModuleName").val().toString() + "/" : "") + data + reportParams);
  251. if (ApiBuilder.requestType != 0) {
  252. request = (ApiBuilder.requestType == Number(Unibase.Platform.DataApis.Enums.RequestType.Get) ? "Get" : "Post");
  253. $("#spn_request").removeClass("hidden");
  254. $("#spn_request").text(request);
  255. $("#hf_actionType").val(ApiBuilder.requestType);
  256. ApiBuilder.requestType = 0;
  257. }
  258. if ($("#txtPackageName").val().toString() == '' && $("#txtAppName").val().toString() == '' && $("#txtModuleName").val().toString() == '' && ($("#ddl_executionType option:selected").val() == 0 || $("#ddl_executionType").val() == undefined) && $("#txtMethodName").val().toString() == '') {
  259. $("#txtApiPreview").text(service_url);
  260. }
  261. ApiBuilder.Instance().uniqueKey();
  262. }
  263. getrequestType() {
  264. ApiBuilder.requestType = Number($("#ddl_requestType option:selected").val());
  265. ApiBuilder.Instance().getPreview();
  266. }
  267. getTypeData(serviceIndex, dataApiResult) {
  268. return __awaiter(this, void 0, void 0, function* () {
  269. ApiBuilder.serviceIndex = serviceIndex;
  270. let html = "<div id='div_RequestData' class='floating-label-form-group-with-value'> <label id='lblrequestData'><span class='text-danger' id = 'spnRequestData'> * </span></label><input type='hidden' id='hf_selectedType' value='0'/><select id='txt_selectedType' onchange='javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getMethodData(" + ApiBuilder.serviceIndex + ");javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadQueryBuilder(" + ApiBuilder.serviceIndex + ");javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadProperties(" + ApiBuilder.serviceIndex + ");javascript: Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(" + ApiBuilder.serviceIndex + ");Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(" + ApiBuilder.serviceIndex + ");Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadInputParametersToUrl(\"Service\",\"Parameters\",\"" + ApiBuilder.serviceIndex + "\");' class='form-control value-control required' data-placeholder='Select' placeholder='Select'></select></div>";
  271. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_selectedType").html(html);
  272. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_requestType").addClass("hidden");
  273. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_requestType").val(0);
  274. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#Output").html("");
  275. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_QueryBuilder").addClass("hidden");
  276. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_method").remove();
  277. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").remove();
  278. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").html("");
  279. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").addClass("hidden");
  280. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").html("");
  281. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").addClass("hidden");
  282. $("#hf_actionType").val("");
  283. $(".div_dataApi_" + serviceIndex).find("#div_methodParams_" + serviceIndex).html("");
  284. ApiBuilder.paramNames = [];
  285. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#spn_request").addClass("hidden");
  286. if (ApiBuilder.isIntegration == true) {
  287. $("#div_customJson_" + ApiBuilder.serviceIndex).removeClass("hidden");
  288. $("#div_customJson_" + ApiBuilder.serviceIndex).find("#chk_cusJson_" + ApiBuilder.serviceIndex).prop("checked", false);
  289. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Form || Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.PostData)
  290. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApi_CustomJson_" + ApiBuilder.serviceIndex).removeClass("hidden");
  291. else {
  292. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApi_CustomJson_" + ApiBuilder.serviceIndex).addClass("hidden");
  293. }
  294. Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadcustomJsonEditor(ApiBuilder.serviceIndex);
  295. yield Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(serviceIndex);
  296. Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadInputParametersToUrl("Service", "Parameters", ApiBuilder.serviceIndex);
  297. }
  298. if (dataApiResult != undefined) {
  299. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  300. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txtMethodName").val(dataApiResult.MethodName);
  301. }
  302. }
  303. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Form) {
  304. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/forms/getformsautocomplete';
  305. AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType"), $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#hf_selectedType"), url, function (response) {
  306. var data = response;
  307. });
  308. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() != 0) {
  309. if (dataApiResult != undefined) {
  310. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  311. if (dataApiResult.FormName == null) {
  312. var option = new Option("", "", true);
  313. }
  314. else {
  315. option = new Option(dataApiResult.FormName, dataApiResult.IdValue.toString(), true);
  316. }
  317. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType").append(option);
  318. ApiBuilder.Instance().loadProperties(ApiBuilder.serviceIndex, dataApiResult);
  319. }
  320. }
  321. }
  322. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#lblrequestData").html("Forms<span class='text-danger' id = 'spnRequestData'> * </span>");
  323. }
  324. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Report) {
  325. if (ApiBuilder.isIntegration == false) {
  326. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_requestType").removeClass("hidden");
  327. }
  328. else {
  329. $("#div_customJson_" + ApiBuilder.serviceIndex).addClass("hidden");
  330. $("#div_customJsonEditor_" + ApiBuilder.serviceIndex).addClass("hidden");
  331. }
  332. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
  333. AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType"), $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#hf_selectedType"), url, function (response) {
  334. var data = response;
  335. });
  336. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() != 0) {
  337. if (dataApiResult != undefined) {
  338. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  339. if (dataApiResult.ReportName == null) {
  340. var option = new Option("", "", true);
  341. }
  342. else {
  343. option = new Option(dataApiResult.ReportName, dataApiResult.IdValue.toString(), true);
  344. }
  345. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType").append(option);
  346. ApiBuilder.requestType = dataApiResult.RequestTypeId;
  347. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_requestType").val(Number(dataApiResult.RequestTypeId));
  348. ApiBuilder.Instance().loadProperties(ApiBuilder.serviceIndex, dataApiResult);
  349. ApiBuilder.Instance().loadQueryBuilder(ApiBuilder.serviceIndex);
  350. $("#Unibase_apiBuilder_" + serviceIndex).find("#sql").text(dataApiResult.StaticFilter);
  351. ApiBuilder.Instance().getPreview();
  352. var params = (dataApiResult.ParamName1 != "" ? "/" + dataApiResult.ParamName1 + "/{" + dataApiResult.ParamName1 + "}" : "") + (dataApiResult.ParamName2 != "" ? "/" + dataApiResult.ParamName2 + "/{" + dataApiResult.ParamName2 + "}" : "") + (dataApiResult.ParamName3 != "" ? "/" + dataApiResult.ParamName3 + "/{" + dataApiResult.ParamName3 + "}" : "") + (dataApiResult.ParamName4 != "" ? "/" + dataApiResult.ParamName4 + "/{" + dataApiResult.ParamName4 + "}" : "") + (dataApiResult.ParamName5 != "" ? "/" + dataApiResult.ParamName5 + "/{" + dataApiResult.ParamName5 + "}" : "") + (dataApiResult.ParamName6 != "" ? "/" + dataApiResult.ParamName6 + "/{" + dataApiResult.ParamName6 + "}" : "") + (dataApiResult.ParamName7 != "" ? "/" + dataApiResult.ParamName7 + "/{" + dataApiResult.ParamName7 + "}" : "") + (dataApiResult.ParamName8 != "" ? "/" + dataApiResult.ParamName8 + "/{" + dataApiResult.ParamName8 + "}" : "");
  353. $("#txtApiPreview").text($("#txtApiPreview").text() + params);
  354. }
  355. }
  356. }
  357. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#lblrequestData").html("Reports<span class='text-danger' id = 'spnRequestData'> * </span>");
  358. }
  359. else if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Method) {
  360. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").addClass("hidden");
  361. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/dataapis/managerautocomplete';
  362. AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType"), $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#hf_selectedType"), url, function (response) {
  363. var data = response;
  364. });
  365. if (dataApiResult != undefined) {
  366. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  367. if (dataApiResult.ExecutionTypeId != Number(Unibase.Platform.DataApis.Enums.ExecutionType.Method)) {
  368. }
  369. else {
  370. if (dataApiResult.SystemName == null) {
  371. var option = new Option("", "", true);
  372. }
  373. else {
  374. var systemName = dataApiResult.SystemName.split(',');
  375. var managerName = systemName[0].split('.');
  376. option = new Option(managerName[managerName.length - 1], dataApiResult.SystemName, true);
  377. }
  378. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType").append(option);
  379. var serviceindex = ApiBuilder.serviceIndex;
  380. var apiResult = dataApiResult;
  381. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getMethodProvider(dataApiResult.MethodProviderId).then(function (methodResponse) {
  382. ApiBuilder.serviceIndex = serviceindex;
  383. dataApiResult = apiResult;
  384. ApiBuilder.Instance().getMethodData(ApiBuilder.serviceIndex, dataApiResult);
  385. });
  386. }
  387. }
  388. }
  389. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#lblrequestData").html("Managers<span class='text-danger' id = 'spnRequestData'> * </span>");
  390. }
  391. else if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == 0 || $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.PostData) {
  392. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_RequestData").remove();
  393. $("#Unibase_apiBuilder_" + serviceIndex).find("#hf_dataApiId").val(0);
  394. }
  395. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() != 0) {
  396. if (dataApiResult != undefined) {
  397. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  398. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txtMethodName").val(dataApiResult.MethodName);
  399. }
  400. }
  401. }
  402. });
  403. }
  404. getMethodData(serviceIndex, dataApiResult) {
  405. return __awaiter(this, void 0, void 0, function* () {
  406. ApiBuilder.serviceIndex = serviceIndex;
  407. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").remove();
  408. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").html("");
  409. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").addClass("hidden");
  410. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").html("");
  411. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").addClass("hidden");
  412. $(".div_dataApi_" + serviceIndex).find("#div_methodParams_" + serviceIndex).html("");
  413. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val() == Unibase.Platform.DataApis.Enums.ExecutionType.Method) {
  414. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#spn_request").addClass("hidden");
  415. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApi_CustomJson_" + ApiBuilder.serviceIndex).addClass("hidden");
  416. let html = "";
  417. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType").val() != 0) {
  418. html = "<div id='div_method' class='floating-label-form-group-with-value'> <label>Method<span class='text-danger' id = 'spnMethod'> * </span></label><input type='hidden' id='hf_requestTypeId' value='0'/><input type='hidden' id='hf_selectedMethod' value='0'/><select id='txt_selectedMethod' onchange='javascript: Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadParamTypes(" + ApiBuilder.serviceIndex + ");javascript: Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(" + ApiBuilder.serviceIndex + ");Unibase.Platform.DataApis.Components.ApiBuilder.Instance().uniqueKey();Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(" + ApiBuilder.serviceIndex + ");Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadInputParametersToUrl(\"Service\",\"Parameters\",\"" + ApiBuilder.serviceIndex + "\");' class='form-control value-control required' placeholder='Select' data-placeholder='Select'></select></div>";
  419. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_selectedMethod").html(html);
  420. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/dataapis/methodproviderautocomplete/systemname/' + $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType").val();
  421. AutoCompleteHelper.getHelper().Create($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedMethod"), $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#hf_selectedMethod"), url, function (response) {
  422. var data = response;
  423. });
  424. if (dataApiResult != undefined) {
  425. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  426. if (dataApiResult.MethodFullName == null) {
  427. var option = new Option("", "", true);
  428. }
  429. else {
  430. var parameters = "";
  431. var params = JSON.parse(dataApiResult.ParamTypes);
  432. for (var param in params) {
  433. parameters += param + ",";
  434. }
  435. if (parameters.includes(',')) {
  436. parameters = parameters.substring(0, parameters.length - 1);
  437. }
  438. option = new Option(dataApiResult.MethodFullName + "(" + parameters + ")", dataApiResult.MethodProviderId.toString(), true);
  439. }
  440. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedMethod").append(option);
  441. yield ApiBuilder.Instance().loadParamTypes(ApiBuilder.serviceIndex, dataApiResult);
  442. }
  443. }
  444. }
  445. else {
  446. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_method").remove();
  447. }
  448. }
  449. });
  450. }
  451. parameterValidation(serviceIndex, name) {
  452. ApiBuilder.serviceIndex = serviceIndex;
  453. let paramCount = $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find('input:checkbox:checked').length;
  454. if (paramCount > 8) {
  455. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find('#chk_FromUrl_' + name).prop("checked", false);
  456. if (ApiBuilder.isIntegration == false) {
  457. MessageHelper.Instance().showError("Only 8 parameters are accepted for FromURL", "Unibase_ValidationSummary");
  458. }
  459. else {
  460. MessageHelper.Instance().showError("Only 8 parameters are accepted for FromURL", "div_configError");
  461. }
  462. return false;
  463. }
  464. }
  465. loadParamTypes(serviceIndex, dataApiResult) {
  466. return __awaiter(this, void 0, void 0, function* () {
  467. let parameterCount = 0;
  468. ApiBuilder.serviceIndex = serviceIndex;
  469. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedMethod option:selected").val() != 0) {
  470. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").addClass("sortable");
  471. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").remove();
  472. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").html("");
  473. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_fromBodyParameters").html("");
  474. if ($("#chk_cusJson_" + ApiBuilder.serviceIndex).prop("checked") == false)
  475. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").removeClass("hidden");
  476. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").html('<div class="row"><div class="row col-sm-11"><strong class="col-sm-3 ml-10">Name</strong><strong class="col-sm-2 ml-20">Type</strong><strong id="url_Type" class="col-sm-3 ml-15">URL Type</strong><strong id="aliasName" class="col-sm-2 ml-15">Alias Name</strong></div><input id="btnClearParameters" class="ml-40" onclick="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadParamTypes(' + ApiBuilder.serviceIndex + ');javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(' + ApiBuilder.serviceIndex + ')" type="reset"></div>');
  477. var serviceindex = ApiBuilder.serviceIndex;
  478. var apiResult = dataApiResult;
  479. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Method) {
  480. yield Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getMethodProvider($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedMethod option:selected").val()).then(function (response) {
  481. ApiBuilder.serviceIndex = serviceindex;
  482. dataApiResult = apiResult;
  483. if (response != null) {
  484. ApiBuilder.requestType = response.result.RequestTypeId;
  485. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#hf_requestTypeId").val(response.result.RequestTypeId);
  486. let index = 1;
  487. function bindHtml(name, type) {
  488. let html = '';
  489. html += '<div class="row paramSortable" id="divSortable_' + index + '"><i class="fa fa-sort text-muted pull-left media-xs"></i><div class="col-sm-12 row added-item mb-2"><div class="col-sm-3" id="div_Name">' + name + '</div><div class="col-sm-2" id="div_Type">' + type + '</div>';
  490. if (response.result.RequestTypeId == Unibase.Platform.DataApis.Enums.RequestType.Post || response.result.RequestTypeId == Unibase.Platform.DataApis.Enums.RequestType.Put) {
  491. html += '<div class="col-sm-3"><div class="custom-control custom-checkbox"><input type="checkbox" onchange="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().parameterValidation(\'' + ApiBuilder.serviceIndex + '\',\'' + name + '\');Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(' + ApiBuilder.serviceIndex + ');Unibase.Platform.DataApis.Components.ApiBuilder.Instance().uniqueKey();Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(' + ApiBuilder.serviceIndex + ');" id="chk_FromUrl_' + name + '" value="' + name + '" name="chk_Param_' + name + '" class="custom-control-input chk_FromUrl"/><label for="chk_FromUrl_' + name + '" class="custom-control-label">From URL</label></div></div>';
  492. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApi_CustomJson_" + ApiBuilder.serviceIndex).removeClass("hidden");
  493. if ($("#chk_cusJson_" + ApiBuilder.serviceIndex).prop("checked") == false)
  494. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").removeClass("hidden");
  495. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#url_Type").removeClass("hidden");
  496. }
  497. else {
  498. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_dataApi_CustomJson_" + ApiBuilder.serviceIndex).addClass("hidden");
  499. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#url_Type").addClass("hidden");
  500. parameterCount++;
  501. }
  502. html += '<div class="col-sm-4 mb-2"><input type="text" id="txtAliasName_' + name + '" value="' + name + '" placeholder="Enter Name" class="form-control txtAliasName" onkeyup="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();javascript: Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(' + ApiBuilder.serviceIndex + ');javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().uniqueKey()" onkeydown="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();javascript: Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getParametersPreview(' + ApiBuilder.serviceIndex + ');javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().uniqueKey()"/><input type="hidden" id="hf_txtAliasName_' + name + '" value="' + name + '" class="hf_txtAliasName"/></div></div><div>';
  503. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").append(html);
  504. index++;
  505. }
  506. let paramTypes = JSON.parse(response.result.ParamTypes);
  507. if (!jQuery.isEmptyObject(paramTypes)) {
  508. for (let name in paramTypes) {
  509. let parameterName;
  510. let parameterType;
  511. if (paramTypes[name].includes("System")) {
  512. parameterName = name;
  513. parameterType = paramTypes[name].split(",");
  514. parameterType = parameterType[0].split(".");
  515. parameterType = parameterType[1];
  516. bindHtml(parameterName, parameterType);
  517. }
  518. else {
  519. let params = JSON.parse(response.result.RequestJson);
  520. for (let name in params) {
  521. parameterName = name;
  522. parameterType = params[name].split(',');
  523. if ((parameterType[0].includes("Unibase"))) {
  524. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").append("<div class='row paramSortable' id='divSortable_" + index + "'><i class='fa fa-sort text-muted pull-left media - xs'></i><div class='row col-sm-12'><div id='divParent_" + parameterName + "' class='col-sm-12 div_Toggle mb-2 fa fa-caret-right'><span id='sp_name' style='font-size:18px;'>" + parameterName + "</span><div class='card col-sm-12' style='display:none;'><div class='card-header row'><strong class='col-sm-6'>Name</strong><strong class='col-sm-6'>Type</strong></div><div class='card-body'></div></div><span type='hidden' id='spn_type' class='hidden'>'" + parameterType + "'</span></div></div><div><br/>");
  525. }
  526. else {
  527. parameterType = parameterType[0].split(".");
  528. parameterType = parameterType[1];
  529. bindHtml(parameterName, parameterType);
  530. }
  531. }
  532. }
  533. }
  534. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").removeClass("hidden");
  535. }
  536. else {
  537. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").addClass("hidden");
  538. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").append('<div style="text-align: center;">No Parameters Found</div>');
  539. }
  540. if (parameterCount == 1) {
  541. $("#methodParams").find(".added-item").append('<div class="col-sm-3 mb-2"><div class="custom-control custom-checkbox"><input type="checkbox" onchange="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadAliasName()" id="chk_HasIdValue" name="chk_HasIdValue" class="custom-control-input chk_HasIdValue"/><label for="chk_HasIdValue" class="custom-control-label">HasIdValue</label></div></div>');
  542. }
  543. ApiBuilder.Instance().getChildParams();
  544. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".nested").hide();
  545. ApiBuilder.Instance().toRestrictSpecialCharacters();
  546. if (dataApiResult != undefined) {
  547. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  548. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  549. if (dataApiResult.ParamName1 == $(this).find("#div_Name").text() || dataApiResult.ParamName2 == $(this).find("#div_Name").text() || dataApiResult.ParamName3 == $(this).find("#div_Name").text() || dataApiResult.ParamName4 == $(this).find("#div_Name").text() || dataApiResult.ParamName5 == $(this).find("#div_Name").text() || dataApiResult.ParamName6 == $(this).find("#div_Name").text() || dataApiResult.ParamName7 == $(this).find("#div_Name").text() || dataApiResult.ParamName8 == $(this).find("#div_Name").text()) {
  550. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(this).find("input:checkbox").prop("checked", true);
  551. }
  552. let mappingjson = JSON.parse(dataApiResult.MappingJson);
  553. for (let name in mappingjson) {
  554. if (name == $(this).find("#div_Name").text()) {
  555. $(this).find(".txtAliasName").val(mappingjson[name]);
  556. }
  557. }
  558. });
  559. $("#chk_HasIdValue").prop("checked", dataApiResult.HasIdValue);
  560. if (dataApiResult.HasIdValue == true) {
  561. $(".txtAliasName").attr("disabled", "true");
  562. }
  563. }
  564. }
  565. ApiBuilder.Instance().getPreview();
  566. ApiBuilder.Instance().getParametersPreview(ApiBuilder.serviceIndex);
  567. if (ApiBuilder.isIntegration == true) {
  568. $("#div_Execution_" + serviceIndex).removeClass("card card-body");
  569. let paramTypes = JSON.parse(response.result.ParamTypes);
  570. if (!jQuery.isEmptyObject(paramTypes)) {
  571. }
  572. }
  573. }
  574. });
  575. }
  576. Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(ApiBuilder.serviceIndex);
  577. }
  578. });
  579. }
  580. loadAliasName() {
  581. if ($("#chk_HasIdValue").prop("checked") == true) {
  582. $(".txtAliasName").attr("disabled", "true");
  583. }
  584. else {
  585. $(".txtAliasName").removeAttr("disabled");
  586. }
  587. ApiBuilder.Instance().getPreview();
  588. }
  589. childObject(e, name, properties) {
  590. if (!$("#divParent_" + name).hasClass("expanded")) {
  591. if (!$("#divParent_" + name).hasClass("paramData")) {
  592. for (let prop in properties) {
  593. var type = properties[prop].split(',');
  594. var paramType = (typeof (type[0]));
  595. if (!(type[0].includes("Unibase"))) {
  596. paramType = type[0].split(".");
  597. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find("#divParent_" + name).find(".card-body").append('<div class="row added-item mb-2 nested"><div class="col-sm-6" id="div_Name">' + prop + '</div><div class="col-sm-6" id="div_Type">' + paramType[1] + '</div></div>');
  598. }
  599. else {
  600. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find("#divParent_" + name).append("<div id='divParent_" + prop + "' class='col-sm-12 div_Toggle fa fa-caret-right' style='display:none;'><span id='sp_name'>" + prop + "</span><div class='card col-sm-12' style='display:none;'><div class='card-header row'><strong class='col-sm-6'>Name</strong><strong class='col-sm-6'>Type</strong></div><div class='card-body'></div></div><span type='hidden' id='spn_type' class='hidden'>'" + properties[prop] + "'</span></div>");
  601. }
  602. }
  603. }
  604. $("#divParent_" + name).removeClass("fa fa-caret-right");
  605. $("#divParent_" + name).addClass("fa fa-caret-down");
  606. $("#divParent_" + name).addClass("expanded");
  607. $("#divParent_" + name).addClass("paramData");
  608. $("#divParent_" + name).find(".nested").show();
  609. $("#divParent_" + name).find(".card").show();
  610. if ($("#divParent_" + name).children(".fa-caret-right")) {
  611. $("#divParent_" + name).children(".fa-caret-right").show();
  612. $("#divParent_" + name).children(".fa-caret-right").find(".added-item").hide();
  613. $("#divParent_" + name).children(".fa-caret-right").find(".card").hide();
  614. }
  615. else {
  616. $("#divParent_" + name).children(".fa-caret-down").find(".added-item").show();
  617. $("#divParent_" + name).children(".fa-caret-down").find(".card").show();
  618. }
  619. }
  620. else {
  621. $("#divParent_" + name).find(".div_Toggle").removeClass("fa fa-caret-down");
  622. $("#divParent_" + name).find(".div_Toggle").addClass("fa fa-caret-right");
  623. $("#divParent_" + name).find(".div_Toggle").removeClass("expanded");
  624. $("#divParent_" + name).children(".div_Toggle").find(".added-item").hide();
  625. $("#divParent_" + name).children(".div_Toggle").find(".card").hide();
  626. $("#divParent_" + name).children(".div_Toggle").hide();
  627. $("#divParent_" + name).removeClass("fa fa-caret-down");
  628. $("#divParent_" + name).addClass("fa fa-caret-right");
  629. $("#divParent_" + name).removeClass("expanded");
  630. $("#divParent_" + name).find(".card").hide();
  631. $("#divParent_" + name).find(".nested").hide();
  632. $("#divParent_" + name).find(".div_Toggle").hide();
  633. }
  634. }
  635. loadProperties(serviceIndex, dataApiResult) {
  636. return __awaiter(this, void 0, void 0, function* () {
  637. ApiBuilder.serviceIndex = serviceIndex;
  638. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").removeClass("sortable");
  639. var serviceindex = ApiBuilder.serviceIndex;
  640. var apiResult = dataApiResult;
  641. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.
  642. Form) {
  643. let formId = Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType option:selected").val());
  644. yield ApiBuilder.Instance().loadFormProperties(formId, serviceIndex, false, false, "", dataApiResult);
  645. ApiBuilder.Instance().getPreview();
  646. if (dataApiResult != undefined) {
  647. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  648. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  649. let mappingjson = JSON.parse(dataApiResult.MappingJson);
  650. var filters = Unibase.Platform.Integrations.Components.CreateProvider.filters;
  651. var serviceId = $("#serviceCollection_" + ApiBuilder.serviceIndex).find("#hf_serviceId").val();
  652. for (let name in mappingjson) {
  653. if (name == $(this).find("#div_Name").text()) {
  654. if ($(this).find("#hf_isStaticControl").val() == "false") {
  655. $(this).find(".txtAliasName").val(mappingjson[name]);
  656. }
  657. else {
  658. $(this).find(".formProp_Javascript").val(JSON.stringify(mappingjson[name]));
  659. }
  660. }
  661. }
  662. if (ApiBuilder.isIntegration == true) {
  663. for (var i = 0; i < filters.length; i++) {
  664. if (filters[i].SettingName == $(this).find(".txtAliasName").val() && filters[i].ServiceId == serviceId) {
  665. $(this).find(".hf_SettingId").val(filters[i].ServiceSettingId);
  666. }
  667. }
  668. }
  669. });
  670. }
  671. }
  672. if ($("#chk_cusJson_" + serviceIndex).prop("checked") == true)
  673. $("#div_Execution_" + serviceIndex).find("#div_methodParams").addClass("hidden");
  674. else
  675. $("#div_Execution_" + serviceIndex).find("#div_methodParams").removeClass("hidden");
  676. }
  677. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Report) {
  678. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").removeClass("hidden");
  679. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_QueryBuilder").removeClass("hidden");
  680. if (ApiBuilder.isIntegration == false) {
  681. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".api-builder-fromBodyParameterPreview").removeClass("hidden");
  682. }
  683. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#Output").html("");
  684. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").html('<div class="row"><div class="row col-sm-11"><strong class="col-sm-4 ml-15">Report Column Name</strong><strong class="col-sm-3 ml-10">Data Type</strong><strong class="col-sm-4 ml-10">Alias Name</strong></div><input id="btnClearReportColumns" onclick="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadProperties(' + serviceIndex + ')" class="ml-30" type="reset"></div>');
  685. this.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js", function () {
  686. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getColumns(Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_selectedType option:selected").val())).then(function (response) {
  687. ApiBuilder.serviceIndex = serviceindex;
  688. dataApiResult = apiResult;
  689. let html = '';
  690. var data = response.result;
  691. if (data.length != 0) {
  692. for (let i = 0; i < data.length; i++) {
  693. html += '<div class="row col-sm-12 added-item"><div class="col-sm-4" id="div_Name">' + data[i].ReportColumnName + '</div><div class="col-sm-3">' + data[i].DataType + '</div><div class="col-sm-4 mb-2"><input type="text" id="txtAlisName_' + data[i].ReportColumnName + '" value="' + data[i].ReportColumnName + '" placeholder="Enter Name" class="form-control txtAliasName"/></div></div><div></div>';
  694. }
  695. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").removeClass("hidden");
  696. }
  697. else {
  698. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").addClass("hidden");
  699. html += '<div style="text-align: center;">No Columns Found</div>';
  700. }
  701. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").html(html);
  702. if (ApiBuilder.isIntegration == true) {
  703. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").addClass("hidden");
  704. }
  705. });
  706. });
  707. }
  708. });
  709. }
  710. loadSubFormProperties(subFormId, serviceIndex, isSubForm) {
  711. ApiBuilder.serviceIndex = serviceIndex;
  712. if ($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").hasClass("expanded")) {
  713. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").removeClass("expanded");
  714. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").find("i").removeClass("fa fa-caret-right");
  715. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").find("i").addClass("fa fa-caret-down");
  716. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find("#div_subformprops_" + subFormId).removeClass("hidden");
  717. }
  718. else {
  719. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").addClass("expanded");
  720. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").find("i").removeClass("fa fa-caret-down");
  721. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find(".div_SubForm_Toggle").find("i").addClass("fa fa-caret-right");
  722. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformProp_" + subFormId).find("#div_subformprops_" + subFormId).addClass("hidden");
  723. }
  724. }
  725. loadFormProperties(formId, serviceIndex, isSubForm, isStaticControl, html, dataApiResult) {
  726. return __awaiter(this, void 0, void 0, function* () {
  727. var headerHtml = '<div class="row"><div class="row col-sm-11"><strong class="col-sm-4 ml-15">Form Property Name</strong><strong class="col-sm-3 ml-10">Data Type</strong><strong class="col-sm-4 ml-10">Alias Name</strong></div><input id="btnClearFormProperties" onclick="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadProperties(' + ApiBuilder.serviceIndex + ')" class="ml-30" type="reset"></div>';
  728. if (isSubForm == true) {
  729. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").removeClass("hidden");
  730. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformprops_header").html(headerHtml);
  731. }
  732. else {
  733. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams").removeClass("hidden");
  734. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").html(headerHtml);
  735. }
  736. yield Unibase.Platform.Forms.Managers.FormManager.Instance().getFormProperties(formId).then(function (response) {
  737. return __awaiter(this, void 0, void 0, function* () {
  738. ApiBuilder.serviceIndex = serviceIndex;
  739. let data = response.result;
  740. if (data.length != 0) {
  741. for (let i = 0; i < data.length; i++) {
  742. var formProperty = data[i];
  743. if (formProperty.DocPropertyId == 0 && formProperty.ControlName == "SubForm") {
  744. let subFormId = JSON.parse(formProperty.PropertyHtmlText).ChildFormId;
  745. html += '<div class="row col-sm-12 div_subformProp added-item" id="div_subformProp_' + subFormId + '"><div class="col-sm-12 div_SubForm_Toggle");"><i class="fa fa-caret-right" onclick="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().loadSubFormProperties(' + subFormId + ',' + ApiBuilder.serviceIndex + ',' + true + ');"></i><input type="hidden" id="hf_subFormId" value="' + subFormId + '"/><span id="spn_subFormName">' + formProperty.FormPropertyName + '</span><div id="div_subformprops_' + subFormId + '" class="card-body hidden div_subformprops_' + formProperty.FormPropertyName + '" ></div><div class="card-header hidden" id="div_subformprops_header"></div></div></div>';
  746. if (isSubForm == true) {
  747. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformprops_header").addClass("hidden");
  748. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformprops_" + formId).html(html);
  749. }
  750. else {
  751. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").addClass("hidden");
  752. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").append(html);
  753. }
  754. html = "";
  755. ApiBuilder.Instance().loadFormProperties(subFormId, serviceIndex, true, false, html, dataApiResult);
  756. }
  757. else {
  758. if (formProperty.DocPropertyId == 0 && formProperty.IsStaticControl == true) {
  759. isStaticControl = true;
  760. }
  761. html += '<div class="row col-sm-12 added-item inserted"><input type="hidden" id="hf_IsSubForm" value="' + isSubForm + '"/><input type="hidden" id="hf_isStaticControl" value="' + isStaticControl + '"/><div class="col-sm-4" id="div_Name">' + formProperty.FormPropertyName + '</div><div class="col-sm-3" id="div_DataType">' + formProperty.DataTypeName + '</div><div class="col-sm-4 mb-2"><input type="text" id="txtAlisName_' + formProperty.FormPropertyName + '" value="' + formProperty.FormPropertyName + '" placeholder="Enter Name" class="form-control txtAliasName"/><input type="hidden" class="hf_SettingId" value="0"/></div>';
  762. if (formProperty.DocPropertyId == 0 && formProperty.IsStaticControl == true) {
  763. html += '<div class="row col-sm-12 customJson" id="json_' + formProperty.FormPropertyName + '"> <div class="col-sm-12" > <textarea class="formProp_Javascript col-sm-12" style = "display: block;" id = "javascript_' + formProperty.FormPropertyName + '"></textarea></div>';
  764. }
  765. html += '</div><div></div>';
  766. }
  767. }
  768. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").removeClass("hidden");
  769. }
  770. else {
  771. html += '<div style="text-align: center;">No Properties Found</div>';
  772. }
  773. if (isSubForm == true) {
  774. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformprops_header").addClass("hidden");
  775. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_subformprops_" + formId).append(html);
  776. ApiBuilder.Instance().bindSubFormPropertiesData(dataApiResult);
  777. }
  778. else {
  779. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#div_methodParams_header").addClass("hidden");
  780. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").append(html);
  781. }
  782. });
  783. });
  784. });
  785. }
  786. bindSubFormPropertiesData(dataApiResult) {
  787. if (dataApiResult != undefined) {
  788. if (dataApiResult.DataApiId != undefined && dataApiResult.DataApiId != 0) {
  789. let mappingjson = JSON.parse(dataApiResult.MappingJson);
  790. for (let name in mappingjson) {
  791. if (typeof (mappingjson[name]) == "object") {
  792. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  793. var instance = this;
  794. if ($(instance).hasClass("div_subformProp")) {
  795. for (var i = 0; i < mappingjson[name].length; i++) {
  796. bindFormProp(mappingjson[name][i], instance);
  797. }
  798. }
  799. });
  800. }
  801. }
  802. function bindFormProp(json, instance) {
  803. for (let name in json) {
  804. $(instance).find(".added-item").each(function () {
  805. if (name == $(this).find("#div_Name").text()) {
  806. $(this).find(".txtAliasName").val(json[name]);
  807. }
  808. });
  809. }
  810. }
  811. }
  812. }
  813. }
  814. loadQueryBuilder(serviceIndex) {
  815. return __awaiter(this, void 0, void 0, function* () {
  816. var instance = this;
  817. instance.fileCacheHelper.loadCssFile("libs/querybuilder/query-builder.default.css", null);
  818. instance.fileCacheHelper.loadJsFiles(["libs/querybuilder/query-builder.min.js", "libs/querybuilder/query-builder.standalone.min.js", "platform/analytics/enums/datatype.js"], null);
  819. ApiBuilder.serviceIndex = serviceIndex;
  820. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".query_Builder").html('<div id="builder"></div> <button class="btn btn-primary parse-json mt-20">Apply</button> <div id="result" class="mt-20"> <div id="Output" class="hidden"></div> <strong class="text-dark">Filter Expression</strong> <pre></pre><div id="sql"></div> </div>');
  821. let qelem;
  822. let filersArray = [];
  823. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Report) {
  824. var dataSourceId = 0;
  825. var reportObj = {
  826. ReportId: Number($("#Unibase_apiBuilder_" + serviceIndex).find("#txt_selectedType option:selected").val()),
  827. IsEditReport: true,
  828. IsJson: true
  829. };
  830. yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportInfo(reportObj).then(function (reportResponse) {
  831. dataSourceId = reportResponse.result.ReportInfo.DataSourceId;
  832. var data = reportResponse.result.ReportInfo.ReportColumns;
  833. if (data.length != 0) {
  834. for (let i = 0; i < data.length; i++) {
  835. let operators = ['equal', 'not_equal', 'in', 'not_in', 'less', 'less_or_equal', 'greater', 'greater_or_equal', 'between', 'not_between', 'is_null', 'is_not_null'];
  836. let dataType = Unibase.Platform.Analytics.Reports.Enums.DataType[data[i].DataType];
  837. if (dataType == "int32" || dataType == "int64") {
  838. dataType = "integer";
  839. }
  840. else if (dataType == "decimal") {
  841. dataType = "double";
  842. }
  843. else if (dataType == "dateTime") {
  844. dataType = "datetime";
  845. }
  846. else {
  847. operators = ['equal', 'not_equal', 'in', 'not_in', 'begins_with', 'not_begins_with', 'contains', 'not_contains', 'ends_with', 'not_ends_with', 'is_empty', 'is_not_empty', 'is_null', 'is_not_null'];
  848. }
  849. filersArray.push({
  850. id: data[i].AliasName,
  851. label: data[i].AliasName,
  852. type: 'string',
  853. size: 30,
  854. unique: true,
  855. operators: operators
  856. });
  857. }
  858. qelem = $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find('#builder');
  859. var options = {
  860. allow_empty: true,
  861. filters: filersArray
  862. };
  863. qelem.queryBuilder(options);
  864. if ($("#Unibase_apiBuilder_" + serviceIndex).find("#sql").text() != "") {
  865. let qb_json = JSON.parse($("#Unibase_apiBuilder_" + serviceIndex).find("#sql").text());
  866. let qb_rules = instance.changeFieldnametoId(qb_json.rules);
  867. qelem.queryBuilder('setRules', qb_rules);
  868. }
  869. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find(".query_Builder").find("#builder_group_0").addClass("col-sm-12");
  870. }
  871. function getDataTypeByColumnName(ColumnName) {
  872. var coldata = data.filter(x => x.DisplayText == ColumnName);
  873. return coldata[0].DataType;
  874. }
  875. $('.parse-json').on('click', function (e) {
  876. e.preventDefault();
  877. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#Output").html(JSON.stringify(qelem.queryBuilder('getRules'), undefined, 2));
  878. var par = qelem.queryBuilder('getSQL', 'named(@)').params;
  879. var sql = qelem.queryBuilder('getSQL', false, true).sql;
  880. sql = sql.replaceAll("'", "''");
  881. for (var p in qelem.queryBuilder('getSQL', 'named(@)').params) {
  882. var p_1 = sql.substring(sql.indexOf("@") + 1, sql.indexOf(" ", sql.indexOf("@")));
  883. var p_new;
  884. var datatype = getDataTypeByColumnName(p_1);
  885. if (datatype == Number(Unibase.Platform.Analytics.Reports.Enums.DataType.int32) || datatype == Number(Unibase.Platform.Analytics.Reports.Enums.DataType.int64) || datatype == Number(Unibase.Platform.Analytics.Reports.Enums.DataType.decimal)) {
  886. p_new = par[p];
  887. }
  888. else {
  889. p_new = "'" + par[p] + "'";
  890. }
  891. var index = 0;
  892. for (var value in par) {
  893. if (par[value] == par[p]) {
  894. index++;
  895. }
  896. }
  897. if (index <= 1) {
  898. sql = sql.replace("@" + p_1, p_new);
  899. }
  900. }
  901. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#sql").html(sql);
  902. ApiBuilder.staticFiler = sql;
  903. if (ApiBuilder.isIntegration == false) {
  904. Unibase.Platform.DataApis.Components.ApiBuilder.Instance().getPreview();
  905. Unibase.Platform.DataApis.Components.ApiBuilder.Instance().uniqueKey();
  906. }
  907. else {
  908. Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadSampleUrl(ApiBuilder.serviceIndex);
  909. Unibase.Platform.Integrations.Components.CreateProvider.Instance().loadInputParametersToUrl("Service", "Parameters", ApiBuilder.serviceIndex);
  910. }
  911. sql = JSON.stringify(qelem.queryBuilder('getRules'));
  912. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#sql").html(sql);
  913. ApiBuilder.staticFiler = sql;
  914. });
  915. });
  916. }
  917. });
  918. }
  919. changeFieldnametoId(rules) {
  920. var instance = this;
  921. for (var r = 0; r < rules.length; r++) {
  922. let rule = rules[r];
  923. if (rule.rules)
  924. return instance.changeFieldnametoId(rule.rules);
  925. rules[r].id = rule.field;
  926. }
  927. return rules;
  928. }
  929. getParamsJson() {
  930. let params = [];
  931. $("#methodParams").find(".added-item").each(function () {
  932. if ($(this).find('input:checkbox:checked').length > 0) {
  933. params.push({ name: $(this).find(".txtAliasName").val(), IsUrl: $(this).find(".chk_FromUrl").prop("checked") });
  934. }
  935. });
  936. return JSON.stringify(params);
  937. }
  938. mappingJson() {
  939. var obj = {};
  940. let orgName = "";
  941. let aliasName = "";
  942. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  943. var instance = this;
  944. if (Number($("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Form) {
  945. if ($(instance).hasClass("div_subformProp")) {
  946. getObject(obj, instance, "", {});
  947. }
  948. else {
  949. if ($(instance).find('#hf_IsSubForm').val() == 'false' && $(instance).hasClass("inserted") && $(instance).find('#hf_isStaticControl').val() == 'false') {
  950. orgName = $(instance).find("#div_Name").text();
  951. aliasName = $(instance).find(".txtAliasName").val().toString();
  952. if (aliasName == "")
  953. aliasName = orgName;
  954. obj[orgName] = aliasName;
  955. $(instance).removeClass("hidden");
  956. }
  957. else if ($(instance).find('#hf_IsSubForm').val() == 'false' && $(instance).hasClass("inserted") && $(instance).find('#hf_isStaticControl').val() == 'true') {
  958. orgName = $(instance).find("#div_Name").html();
  959. var json = "";
  960. if ($(instance).find(".formProp_Javascript").val() != "" && $(instance).find(".formProp_Javascript").val() != undefined)
  961. json = JSON.parse($(instance).find(".formProp_Javascript").val().toString());
  962. obj[orgName] = json;
  963. $(instance).removeClass("hidden");
  964. }
  965. }
  966. $(instance).addClass("added-Item");
  967. }
  968. else {
  969. orgName = $(instance).find("#div_Name").text();
  970. aliasName = $(instance).find(".txtAliasName").val().toString();
  971. if (aliasName == "")
  972. aliasName = orgName;
  973. obj[orgName] = aliasName;
  974. }
  975. });
  976. function getObject(obj, instance, parentSubFormName, subProp) {
  977. var subFormName = $(instance).find("#spn_subFormName").text();
  978. var subPropObj = {};
  979. $(instance).find("#div_subformprops_" + $(instance).find("#hf_subFormId").val()).find(".added-item").each(function () {
  980. if (!$(this).hasClass("added-Item")) {
  981. if ($(this).hasClass("div_subformProp")) {
  982. subProp = subPropObj;
  983. var subFormInstance = this;
  984. getObject(obj, subFormInstance, subFormName, subProp);
  985. $(this).addClass("added-Item");
  986. }
  987. else {
  988. orgName = $(this).find("#div_Name").text();
  989. aliasName = $(this).find(".txtAliasName").val().toString();
  990. if (aliasName == "")
  991. aliasName = orgName;
  992. subPropObj[orgName] = aliasName;
  993. $(this).addClass("added-Item");
  994. }
  995. }
  996. });
  997. if (parentSubFormName != "") {
  998. subProp[subFormName] = [subPropObj];
  999. obj[parentSubFormName] = [subProp];
  1000. }
  1001. else {
  1002. if (!$(instance).hasClass("added-Item")) {
  1003. obj[subFormName] = [subPropObj];
  1004. }
  1005. }
  1006. parentSubFormName = "";
  1007. }
  1008. return JSON.stringify(obj);
  1009. }
  1010. save(pk_value, containerid) {
  1011. var apiName = $("#txtApiName").val().toString();
  1012. var packageName = $("#txtPackageName").val().toString();
  1013. var appName = $("#txtAppName").val().toString();
  1014. var moduleName = $("#txtModuleName").val().toString();
  1015. var methodName = $("#txtMethodName").val().toString();
  1016. var installedAppId = Number($("#txt_installedApp").val());
  1017. var contents = $('#summernote').summernote('code');
  1018. var plainText = $("<p>" + contents + "</p>").text();
  1019. var description = plainText;
  1020. let param1 = "", param2 = "", param3 = "", param4 = "", param5 = "", param6 = "", param7 = "", param8 = "";
  1021. let ParamNames = ApiBuilder.paramNames;
  1022. for (var i = 0; i < ParamNames.length; i++) {
  1023. if (ParamNames[i].param != "") {
  1024. if (param1 == "") {
  1025. param1 = ParamNames[i].param;
  1026. }
  1027. else if (param2 == "") {
  1028. param2 = ParamNames[i].param;
  1029. }
  1030. else if (param3 == "") {
  1031. param3 = ParamNames[i].param;
  1032. }
  1033. else if (param4 == "") {
  1034. param4 = ParamNames[i].param;
  1035. }
  1036. else if (param5 == "") {
  1037. param5 = ParamNames[i].param;
  1038. }
  1039. else if (param6 == "") {
  1040. param6 = ParamNames[i].param;
  1041. }
  1042. else if (param7 == "") {
  1043. param7 = ParamNames[i].param;
  1044. }
  1045. else {
  1046. param8 = ParamNames[i].param;
  1047. }
  1048. }
  1049. }
  1050. ;
  1051. var hasIdValue = ParamNames.length == 1 ? $("#chk_HasIdValue").prop("checked") : false;
  1052. let mappingJson = ApiBuilder.Instance().mappingJson();
  1053. var idValue = $("#txt_selectedType").val().toString();
  1054. var methodProviderId = 0;
  1055. var requestTypeId = 0;
  1056. if (Number($("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Method) {
  1057. idValue = "0";
  1058. methodProviderId = Number($("#txt_selectedMethod").val());
  1059. requestTypeId = Number($("#hf_requestTypeId").val());
  1060. }
  1061. else if (Number($("#ddl_executionType").val()) == Unibase.Platform.DataApis.Enums.ExecutionType.Report) {
  1062. requestTypeId = Number($("#ddl_requestType").val());
  1063. }
  1064. else {
  1065. requestTypeId = Number(Unibase.Platform.DataApis.Enums.RequestType.Post);
  1066. }
  1067. var uniqueid = "apibuilder_" + apiName + "_" + packageName + "_" + appName + "_" + moduleName + "_" + apiName;
  1068. var recordId = Unibase.Platform.Analytics.Components.ReportViewer.Instance().RecordId == undefined ? 0 : Unibase.Platform.Analytics.Components.ReportViewer.Instance().RecordId;
  1069. var ebableLog = $("#chkEnableLog").prop("checked");
  1070. var postData = {
  1071. DataApiId: Number($("#hf_dataApiId").val()),
  1072. MethodProviderId: methodProviderId,
  1073. ApiName: apiName,
  1074. PackageName: packageName,
  1075. ModuleName: moduleName,
  1076. MethodName: methodName,
  1077. AppName: appName,
  1078. IdValue: idValue,
  1079. UniqueId: $("#txt_UniqueId").val().toString(),
  1080. ExecutionTypeId: Number($("#ddl_executionType").val()),
  1081. RequestTypeId: requestTypeId,
  1082. Description: description,
  1083. InstalledAppId: installedAppId,
  1084. MappingJson: mappingJson,
  1085. ParamName1: param1,
  1086. ParamName2: param2,
  1087. ParamName3: param3,
  1088. ParamName4: param4,
  1089. ParamName5: param5,
  1090. ParamName6: param6,
  1091. ParamName7: param7,
  1092. ParamName8: param8,
  1093. StaticFilter: ApiBuilder.staticFiler,
  1094. ApiTypeId: Number(Unibase.Platform.DataApis.Enums.ApiType.DataApi),
  1095. HasIdValue: hasIdValue,
  1096. EnableLog: ebableLog
  1097. };
  1098. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().saveDataApi(postData).then(function (response) {
  1099. if (response.errors != null) {
  1100. MessageHelper.Instance().showError(response.message, "Unibase_ValidationSummary");
  1101. return false;
  1102. }
  1103. else {
  1104. $('#' + containerid).modal('hide');
  1105. $('#' + containerid).remove();
  1106. alert(response.message);
  1107. }
  1108. });
  1109. }
  1110. edit(dataApiId) {
  1111. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getDataApiExecutionData(dataApiId).then(function (response) {
  1112. $("#hf_dataApiId").val(response.result.DataApiId);
  1113. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#ddl_executionType").val(response.result.ExecutionTypeId);
  1114. $("#txtApiName").val(response.result.ApiName);
  1115. $("#txtPackageName").val(response.result.PackageName);
  1116. $("#txtAppName").val(response.result.AppName);
  1117. $("#txtModuleName").val(response.result.ModuleName);
  1118. if (response.result.AppTitle == null) {
  1119. var option = new Option("", "", true);
  1120. }
  1121. else {
  1122. option = new Option(response.result.AppTitle, response.result.InstalledAppId.toString(), true);
  1123. }
  1124. $("#txt_installedApp").append(option);
  1125. $("#chkEnableLog").prop("checked", response.result.EnableLog);
  1126. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find('#summernote').summernote('code', response.result.Description);
  1127. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#txt_UniqueId").val(response.result.UniqueId);
  1128. ApiBuilder.Instance().getTypeData(ApiBuilder.serviceIndex, response.result);
  1129. $("#Unibase_apiBuilder_" + ApiBuilder.serviceIndex).find("#methodParams").find(".added-item").each(function () {
  1130. 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()) {
  1131. $(this).find("input:checkbox").prop("checked", true);
  1132. }
  1133. });
  1134. if (response.result.ExecutionTypeId == Number(Unibase.Platform.DataApis.Enums.ExecutionType.Report)) {
  1135. ApiBuilder.staticFiler = response.result.StaticFilter;
  1136. ApiBuilder.paramNames.push({ param: response.result.ParamName1, index: ApiBuilder.serviceIndex });
  1137. ApiBuilder.paramNames.push({ param: response.result.ParamName2, index: ApiBuilder.serviceIndex });
  1138. ApiBuilder.paramNames.push({ param: response.result.ParamName3, index: ApiBuilder.serviceIndex });
  1139. ApiBuilder.paramNames.push({ param: response.result.ParamName4, index: ApiBuilder.serviceIndex });
  1140. ApiBuilder.paramNames.push({ param: response.result.ParamName5, index: ApiBuilder.serviceIndex });
  1141. ApiBuilder.paramNames.push({ param: response.result.ParamName6, index: ApiBuilder.serviceIndex });
  1142. ApiBuilder.paramNames.push({ param: response.result.ParamName7, index: ApiBuilder.serviceIndex });
  1143. ApiBuilder.paramNames.push({ param: response.result.ParamName8, index: ApiBuilder.serviceIndex });
  1144. }
  1145. if (response.result.ExecutionTypeId == Number(Unibase.Platform.DataApis.Enums.ExecutionType.Form)) {
  1146. ApiBuilder.Instance().bindSubFormPropertiesData(response.result);
  1147. }
  1148. });
  1149. }
  1150. loadImportAndExport() {
  1151. const html = '<div class="card import-export-body"><div class="card-header"><span class="h6 text-dark ">Import/Export</span></div><div id="dataApi_validation" class="clear"></div><div class="card-body scrollable"><div id="div_importexport" class=""><div class="card"><div class="card-body"> <span class="col-6 pull-left border-right"><a id="btn_Import" class="btn btn-success">Import</a></span><span class="col-6 pull-right"><a id="btn_Export" class="btn btn-primary">Export</a></span></div></div><div class="card hidden" id = "importexportsection"><div class="card-body"><div class="hidden" id="div_Import"><input type="file" id="import_FileUpload" class="bg-light d-none d-sm-block import_FileUpload" style="width:150px"><hr /> <a href="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().importdataapis();" id="fileUpload" class="btn btn-warning text-white">Upload</a></div></div></div><div class="hidden" id="div_Export"><span id="sp_formName"></span><a id="fileExport" href="javascript:Unibase.Platform.DataApis.Components.ApiBuilder.Instance().exportDataApis();" class="btn btn-primary text-white">Download</a></div><div class="card hidden" id="div_errorlog"><div class="card-header"><h6><span id="logname">Error Log</span></h6></div><div class="card-body row nicescroll-bar" style="height:300px;overflow-x:auto;"><ul class="list-group list-group-flush font-14"><li id="errorlog" class="list-group-item no-borders hidden"></li></ul></div></div></div></div></div>';
  1152. var portletwidgetid = Number($("#hf_PortletWidgetId").val());
  1153. $("#divAppWidgets").empty();
  1154. $(".div_portletwidget_" + portletwidgetid).append(html);
  1155. $("#btn_Export").click(function () {
  1156. $("#div_Export").removeClass("hidden");
  1157. $("#importexportsection").addClass("hidden");
  1158. $("#div_Import").addClass("hidden");
  1159. $("#div_errorlog").addClass("hidden");
  1160. });
  1161. $("#btn_Import").click(function () {
  1162. $("#importexportsection").removeClass("hidden");
  1163. $("#div_Import").removeClass("hidden");
  1164. $("#div_Export").addClass("hidden");
  1165. $("#div_errorlog").addClass("hidden");
  1166. });
  1167. $('input[type="file"]').change(function (e) {
  1168. ApiBuilder.Instance().fileEvent(e);
  1169. });
  1170. }
  1171. fileEvent($event) {
  1172. const fileSelected = $event.target.files[0];
  1173. ApiBuilder.fileData = new FormData();
  1174. ApiBuilder.fileData.append(fileSelected.name, fileSelected);
  1175. }
  1176. exportDataApis() {
  1177. var recordId = Unibase.Platform.Analytics.Components.ReportViewer.Instance().InstalledAppId;
  1178. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().exportDataApis(recordId).then(function (response) {
  1179. var filename = "Industry.xml";
  1180. var xmltext = response.result;
  1181. var pom = document.createElement('a');
  1182. var bb = new Blob([xmltext], { type: 'text/plain' });
  1183. pom.setAttribute('href', window.URL.createObjectURL(bb));
  1184. pom.setAttribute('download', filename);
  1185. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  1186. pom.draggable = true;
  1187. pom.classList.add('dragout');
  1188. pom.click();
  1189. });
  1190. }
  1191. importdataapis() {
  1192. const url = _appsettings.server_url() + '/apis/v4/unibase/platform/dataapis/import/np';
  1193. var response = Unibase.Platform.Helpers.FileHelper.Instance().upload(url, ApiBuilder.fileData);
  1194. }
  1195. static Instance() {
  1196. return new ApiBuilder();
  1197. }
  1198. }
  1199. ApiBuilder.isIntegration = false;
  1200. ApiBuilder.serviceIndex = 0;
  1201. ApiBuilder.paramNames = [];
  1202. ApiBuilder.requestType = 0;
  1203. ApiBuilder.fileData = new FormData();
  1204. Components.ApiBuilder = ApiBuilder;
  1205. })(Components = DataApis.Components || (DataApis.Components = {}));
  1206. })(DataApis = Platform.DataApis || (Platform.DataApis = {}));
  1207. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  1208. })(Unibase || (Unibase = {}));