nlink-community-http-request 1.3.5 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/definition.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nlink-community.httpRequest",
3
- "displayName": "HTTP Request (Community)",
4
- "version": "1.3.5",
3
+ "displayName": "HTTP Request",
4
+ "version": "1.3.7",
5
5
  "description": "Makes an HTTP request with configurable method and URL",
6
6
  "group": [
7
7
  "community",
@@ -115,11 +115,26 @@
115
115
  {
116
116
  "displayName": "Headers",
117
117
  "name": "headersParams",
118
- "type": "collection",
119
- "default": [
118
+ "type": "fixedCollection",
119
+ "default": {},
120
+ "options": [
120
121
  {
121
- "key": "",
122
- "value": ""
122
+ "name": "schema",
123
+ "displayName": "Schema",
124
+ "values": [
125
+ {
126
+ "displayName": "Key",
127
+ "name": "key",
128
+ "type": "string",
129
+ "default": ""
130
+ },
131
+ {
132
+ "displayName": "Value",
133
+ "name": "value",
134
+ "type": "string",
135
+ "default": ""
136
+ }
137
+ ]
123
138
  }
124
139
  ],
125
140
  "description": "HTTP headers as key-value pairs",
@@ -192,11 +207,26 @@
192
207
  {
193
208
  "displayName": "Query Parameters",
194
209
  "name": "queryParams",
195
- "type": "collection",
196
- "default": [
210
+ "type": "fixedCollection",
211
+ "default": {},
212
+ "options": [
197
213
  {
198
- "key": "",
199
- "value": ""
214
+ "name": "schema",
215
+ "displayName": "Schema",
216
+ "values": [
217
+ {
218
+ "displayName": "Key",
219
+ "name": "key",
220
+ "type": "string",
221
+ "default": ""
222
+ },
223
+ {
224
+ "displayName": "Value",
225
+ "name": "value",
226
+ "type": "string",
227
+ "default": ""
228
+ }
229
+ ]
200
230
  }
201
231
  ],
202
232
  "description": "URL query parameters as key-value pairs",
@@ -274,11 +304,26 @@
274
304
  {
275
305
  "displayName": "Body Parameters",
276
306
  "name": "bodyParams",
277
- "type": "collection",
278
- "default": [
307
+ "type": "fixedCollection",
308
+ "default": {},
309
+ "options": [
279
310
  {
280
- "key": "",
281
- "value": ""
311
+ "name": "schema",
312
+ "displayName": "Schema",
313
+ "values": [
314
+ {
315
+ "displayName": "Key",
316
+ "name": "key",
317
+ "type": "string",
318
+ "default": ""
319
+ },
320
+ {
321
+ "displayName": "Value",
322
+ "name": "value",
323
+ "type": "string",
324
+ "default": ""
325
+ }
326
+ ]
282
327
  }
283
328
  ],
284
329
  "description": "Request body as key-value pairs",
package/execution.js CHANGED
@@ -1,36 +1,35 @@
1
1
  var url = params.url;
2
- if (!url) {
3
- throw "URL is required";
4
- }
5
-
2
+ if (!url) throw "URL is required";
6
3
  var method = params.method || 'GET';
7
4
 
5
+ // 0. Normalize fixedCollection fallback
6
+ var qParams = params.queryParams?.schema || params.queryParams;
7
+ var hParams = params.headersParams?.schema || params.headersParams;
8
+ var bParams = params.bodyParams?.schema || params.bodyParams;
9
+
10
+ // Helper: Parse JSON String or Object uniformly
11
+ var parseJsonMap = function (input) {
12
+ if (typeof input === 'object' && input !== null) return input;
13
+ if (typeof input === 'string' && input) {
14
+ try { return JSON.parse(input); } catch (e) { }
15
+ }
16
+ return {};
17
+ };
18
+
8
19
  // 1. Query Params
9
20
  if (params.sendQuery) {
10
21
  var queryString = [];
11
22
  if (params.queryInputType === 'json') {
12
- var qMap = {};
13
- if (typeof params.queryJson === 'string' && params.queryJson) {
14
- try { qMap = JSON.parse(params.queryJson); } catch (e) { }
15
- } else if (typeof params.queryJson === 'object' && params.queryJson) {
16
- qMap = params.queryJson;
17
- }
18
- for (var k in qMap) {
19
- queryString.push(encodeURIComponent(k) + '=' + encodeURIComponent(qMap[k]));
20
- }
21
- } else {
22
- if (Array.isArray(params.queryParams)) {
23
- for (var i = 0; i < params.queryParams.length; i++) {
24
- var item = params.queryParams[i];
25
- if (item && item.key) {
26
- queryString.push(encodeURIComponent(item.key) + '=' + encodeURIComponent(item.value || ''));
27
- }
28
- }
23
+ var qMap = parseJsonMap(params.queryJson);
24
+ for (var k in qMap) queryString.push(encodeURIComponent(k) + '=' + encodeURIComponent(qMap[k]));
25
+ } else if (Array.isArray(qParams)) {
26
+ for (var i = 0; i < qParams.length; i++) {
27
+ var qi = qParams[i];
28
+ if (qi && qi.key) queryString.push(encodeURIComponent(qi.key) + '=' + encodeURIComponent(qi.value || ''));
29
29
  }
30
30
  }
31
31
  if (queryString.length > 0) {
32
- var separator = url.indexOf('?') === -1 ? '?' : '&';
33
- url += separator + queryString.join('&');
32
+ url += (url.indexOf('?') === -1 ? '?' : '&') + queryString.join('&');
34
33
  }
35
34
  }
36
35
 
@@ -38,23 +37,12 @@ if (params.sendQuery) {
38
37
  var headers = {};
39
38
  if (params.sendHeaders) {
40
39
  if (params.headersInputType === 'json') {
41
- var hMap = {};
42
- if (typeof params.headersJson === 'string' && params.headersJson) {
43
- try { hMap = JSON.parse(params.headersJson); } catch (e) { }
44
- } else if (typeof params.headersJson === 'object' && params.headersJson) {
45
- hMap = params.headersJson;
46
- }
47
- for (var k in hMap) {
48
- headers[k] = hMap[k];
49
- }
50
- } else {
51
- if (Array.isArray(params.headersParams)) {
52
- for (var i = 0; i < params.headersParams.length; i++) {
53
- var item = params.headersParams[i];
54
- if (item && item.key) {
55
- headers[item.key] = item.value || '';
56
- }
57
- }
40
+ var hMap = parseJsonMap(params.headersJson);
41
+ for (var hk in hMap) headers[hk] = hMap[hk];
42
+ } else if (Array.isArray(hParams)) {
43
+ for (var j = 0; j < hParams.length; j++) {
44
+ var hi = hParams[j];
45
+ if (hi && hi.key) headers[hi.key] = hi.value || '';
58
46
  }
59
47
  }
60
48
  }
@@ -64,54 +52,41 @@ var body = null;
64
52
  if (params.sendBody) {
65
53
  if (params.bodyInputType === 'multipart') {
66
54
  body = {};
67
- if (Array.isArray(params.bodyParams)) {
68
- for (var i = 0; i < params.bodyParams.length; i++) {
69
- var item = params.bodyParams[i];
70
- if (item && item.key) {
71
- var val = item.value;
72
- if (typeof val === 'object' && val !== null && val.name) {
73
- body[item.key] = { name: val.name, data: val.data };
74
- } else {
75
- body[item.key] = val;
76
- }
55
+ if (Array.isArray(bParams)) {
56
+ for (var m = 0; m < bParams.length; m++) {
57
+ var mi = bParams[m];
58
+ if (mi && mi.key) {
59
+ var val = mi.value;
60
+ body[mi.key] = (typeof val === 'object' && val !== null && val.name) ? { name: val.name, data: val.data } : val;
77
61
  }
78
62
  }
79
63
  }
80
64
  } else if (params.bodyInputType === 'params') {
81
65
  var parts = [];
82
- if (Array.isArray(params.bodyParams)) {
83
- for (var i = 0; i < params.bodyParams.length; i++) {
84
- var item = params.bodyParams[i];
85
- if (item && item.key) {
86
- parts.push(encodeURIComponent(item.key) + '=' + encodeURIComponent(item.value || ''));
87
- }
66
+ if (Array.isArray(bParams)) {
67
+ for (var p = 0; p < bParams.length; p++) {
68
+ var pi = bParams[p];
69
+ if (pi && pi.key) parts.push(encodeURIComponent(pi.key) + '=' + encodeURIComponent(pi.value || ''));
88
70
  }
89
71
  }
90
72
  body = parts.join('&');
91
73
  if (!headers["Content-Type"]) headers["Content-Type"] = "application/x-www-form-urlencoded";
92
74
  } else {
93
- if (typeof params.body === 'object' && params.body !== null) {
94
- body = JSON.stringify(params.body);
95
- } else if (typeof params.body === 'string' && params.body.trim() !== '') {
96
- body = params.body;
97
- } else {
98
- body = "{}";
99
- }
75
+ if (typeof params.body === 'object' && params.body !== null) body = JSON.stringify(params.body);
76
+ else if (typeof params.body === 'string' && params.body.trim()) body = params.body;
77
+ else body = "{}";
100
78
  if (!headers["Content-Type"]) headers["Content-Type"] = "application/json";
101
79
  }
102
80
  }
103
81
 
82
+ // 4. Request Execution
104
83
  var resp;
105
84
  if (params.sendBody && params.bodyInputType === 'multipart' && http.UploadMultipart) {
106
85
  resp = http.UploadMultipart(url, body, headers);
107
86
  } else if (http.request) {
108
87
  resp = http.request(method, url, body, headers);
109
- } else if (method === 'GET' && http.get) {
110
- resp = http.get(url);
111
- } else if (method === 'POST' && http.post) {
112
- resp = http.post(url, body, headers);
113
88
  } else {
114
- throw "http.request helper method is missing on the server. Please rebuild/restart backend.";
89
+ throw "http.request helper method is missing. Please rebuild backend.";
115
90
  }
116
91
 
117
92
  var responseBody = resp.body;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nlink-community-http-request",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "description": "HTTP Request community node for nLink Workflow Platform",
5
5
  "keywords": [
6
6
  "nlink",