cisco-axl 1.3.0 → 1.3.2

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.
@@ -0,0 +1,10 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(git add:*)",
5
+ "Bash(npm run build:*)",
6
+ "Bash(git push:*)"
7
+ ],
8
+ "deny": []
9
+ }
10
+ }
package/README.md CHANGED
@@ -222,7 +222,7 @@ See the `examples/typescript` directory for more TypeScript examples.
222
222
 
223
223
  - Add more promised based examples, particularly a Promise.All() example.
224
224
  - Add example for reading in CSV and performing a bulk exercise with variables.
225
- - Add example for saving SQL output to CSV or uploading to cloud (Airtable or SmartSheets).
225
+ - Add example for saving SQL output to CSV.
226
226
 
227
227
  ## Giving Back
228
228
 
package/dist/index.js CHANGED
@@ -161,18 +161,108 @@ class axlService {
161
161
  Object.keys(tags).forEach((k) => (tags[k] === "" || k.includes(dataContainerIdentifierTails)) && delete tags[k]);
162
162
  return new Promise((resolve, reject) => {
163
163
  soap.soap.createClient(options.url, wsdlOptions, function (err, client) {
164
- const customRequestHeader = { connection: "keep-alive" };
165
164
  if (err) {
166
165
  reject(err);
167
166
  return;
168
167
  }
168
+ // Get the properly versioned namespace URL
169
+ const namespaceUrl = `http://www.cisco.com/AXL/API/${options.version}`;
170
+ // 1. Set envelope key
171
+ client.wsdl.options = {
172
+ ...client.wsdl.options,
173
+ envelopeKey: "soapenv", // Change default 'soap' to 'soapenv'
174
+ };
175
+ // 2. Define namespaces with the correct version
176
+ client.wsdl.definitions.xmlns.ns = namespaceUrl;
177
+ // Remove ns1 if it exists
178
+ if (client.wsdl.definitions.xmlns.ns1) {
179
+ delete client.wsdl.definitions.xmlns.ns1;
180
+ }
181
+ const customRequestHeader = {
182
+ connection: "keep-alive",
183
+ SOAPAction: `"CUCM:DB ver=${options.version} ${operation}"`,
184
+ };
169
185
  client.setSecurity(new soap.soap.BasicAuthSecurity(options.username, options.password));
170
186
  client.setEndpoint(options.endpoint);
171
187
  client.on("soapError", function (err) {
172
188
  reject(err.root.Envelope.Body.Fault);
173
189
  });
190
+ // Check if the operation function exists
191
+ if (!client.AXLAPIService || !client.AXLAPIService.AXLPort || typeof client.AXLAPIService.AXLPort[operation] !== "function") {
192
+ // For operations that aren't found, try a manual approach
193
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
194
+ // Determine which parameter to use (name or uuid)
195
+ const operationObj = tags[operation] || tags;
196
+ // Check if uuid or name is provided
197
+ let paramTag, paramValue;
198
+ if (operationObj.uuid) {
199
+ paramTag = "uuid";
200
+ paramValue = operationObj.uuid;
201
+ }
202
+ else {
203
+ paramTag = "name";
204
+ paramValue = operationObj.name;
205
+ }
206
+ const rawXml = `<?xml version="1.0" encoding="UTF-8"?>
207
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="${namespaceUrl}">
208
+ <soapenv:Header/>
209
+ <soapenv:Body>
210
+ <ns:${operation}>
211
+ <${paramTag}>${paramValue}</${paramTag}>
212
+ </ns:${operation}>
213
+ </soapenv:Body>
214
+ </soapenv:Envelope>`;
215
+ // Use client.request for direct XML request
216
+ client._request(options.endpoint, rawXml, function (err, body, response) {
217
+ if (err) {
218
+ reject(err);
219
+ return;
220
+ }
221
+ // Parse the response
222
+ try {
223
+ const result = { return: "Success" }; // Default success response
224
+ resolve(result);
225
+ }
226
+ catch (parseError) {
227
+ reject(parseError);
228
+ }
229
+ }, customRequestHeader);
230
+ return;
231
+ }
232
+ else {
233
+ reject(new Error(`Operation "${operation}" not found`));
234
+ return;
235
+ }
236
+ }
237
+ // Get the operation function - confirmed to exist at this point
174
238
  const axlFunc = client.AXLAPIService.AXLPort[operation];
175
- axlFunc(tags, function (err, result) {
239
+ // Define namespace context with the correct version
240
+ const nsContext = {
241
+ ns: namespaceUrl,
242
+ };
243
+ // Prepare message for specific operations
244
+ let message = tags;
245
+ // Handle operations that start with "apply" or "reset"
246
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
247
+ const operationKey = operation;
248
+ // If there's a nested structure, flatten it
249
+ if (tags[operationKey]) {
250
+ // Check if uuid or name is provided in the nested structure
251
+ if (tags[operationKey].uuid) {
252
+ message = { uuid: tags[operationKey].uuid };
253
+ }
254
+ else if (tags[operationKey].name) {
255
+ message = { name: tags[operationKey].name };
256
+ }
257
+ // If neither uuid nor name is provided, try to use any available
258
+ else {
259
+ // Try to use uuid or name from the top level as fallback
260
+ message = tags.uuid ? { uuid: tags.uuid } : { name: tags.name };
261
+ }
262
+ }
263
+ }
264
+ // Execute the operation
265
+ axlFunc(message, function (err, result) {
176
266
  if (err) {
177
267
  reject(err);
178
268
  return;
@@ -188,9 +278,9 @@ class axlService {
188
278
  resolve(output);
189
279
  }
190
280
  else {
191
- reject("No return results");
281
+ resolve(result || { return: "Success" });
192
282
  }
193
- }, null, customRequestHeader);
283
+ }, nsContext, customRequestHeader);
194
284
  });
195
285
  });
196
286
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -4,6 +4,7 @@ const path = require("path");
4
4
  const wsdlOptions = {
5
5
  attributesKey: "attributes",
6
6
  valueKey: "value",
7
+ ns1: "ns",
7
8
  };
8
9
 
9
10
  /**
@@ -38,6 +39,7 @@ class axlService {
38
39
  for (const [key, value] of Object.entries(description.AXLAPIService.AXLPort)) {
39
40
  outputArr.push(value.name);
40
41
  }
42
+
41
43
  const sortAlphaNum = (a, b) => a.localeCompare(b, "en", { numeric: true });
42
44
  const matches = (substring, array) =>
43
45
  array.filter((element) => {
@@ -101,10 +103,33 @@ class axlService {
101
103
 
102
104
  return new Promise((resolve, reject) => {
103
105
  soap.createClient(options.url, wsdlOptions, function (err, client) {
104
- var customRequestHeader = { connection: "keep-alive" };
105
106
  if (err) {
106
107
  reject(err);
108
+ return;
107
109
  }
110
+
111
+ // Get the properly versioned namespace URL
112
+ const namespaceUrl = `http://www.cisco.com/AXL/API/${options.version}`;
113
+
114
+ // 1. Set envelope key
115
+ client.wsdl.options = {
116
+ ...client.wsdl.options,
117
+ envelopeKey: "soapenv", // Change default 'soap' to 'soapenv'
118
+ };
119
+
120
+ // 2. Define namespaces with the correct version
121
+ client.wsdl.definitions.xmlns.ns = namespaceUrl;
122
+
123
+ // Remove ns1 if it exists
124
+ if (client.wsdl.definitions.xmlns.ns1) {
125
+ delete client.wsdl.definitions.xmlns.ns1;
126
+ }
127
+
128
+ var customRequestHeader = {
129
+ connection: "keep-alive",
130
+ SOAPAction: `"CUCM:DB ver=${options.version} ${operation}"`,
131
+ };
132
+
108
133
  client.setSecurity(new soap.BasicAuthSecurity(options.username, options.password));
109
134
  client.setEndpoint(options.endpoint);
110
135
 
@@ -112,13 +137,100 @@ class axlService {
112
137
  reject(err.root.Envelope.Body.Fault);
113
138
  });
114
139
 
140
+ // Check if the operation function exists
141
+ if (!client.AXLAPIService || !client.AXLAPIService.AXLPort || typeof client.AXLAPIService.AXLPort[operation] !== "function") {
142
+ // For operations that aren't found, try a manual approach
143
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
144
+ // Determine which parameter to use (name or uuid)
145
+ const operationObj = tags[operation] || tags;
146
+
147
+ // Check if uuid or name is provided
148
+ let paramTag, paramValue;
149
+
150
+ if (operationObj.uuid) {
151
+ paramTag = "uuid";
152
+ paramValue = operationObj.uuid;
153
+ } else {
154
+ paramTag = "name";
155
+ paramValue = operationObj.name;
156
+ }
157
+
158
+ const rawXml = `<?xml version="1.0" encoding="UTF-8"?>
159
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="${namespaceUrl}">
160
+ <soapenv:Header/>
161
+ <soapenv:Body>
162
+ <ns:${operation}>
163
+ <${paramTag}>${paramValue}</${paramTag}>
164
+ </ns:${operation}>
165
+ </soapenv:Body>
166
+ </soapenv:Envelope>`;
167
+
168
+ // Use client.request for direct XML request
169
+ client._request(
170
+ options.endpoint,
171
+ rawXml,
172
+ function (err, body, response) {
173
+ if (err) {
174
+ reject(err);
175
+ return;
176
+ }
177
+
178
+ // Parse the response
179
+ try {
180
+ const result = { return: "Success" }; // Default success response
181
+ resolve(result);
182
+ } catch (parseError) {
183
+ reject(parseError);
184
+ }
185
+ },
186
+ customRequestHeader
187
+ );
188
+
189
+ return;
190
+ } else {
191
+ reject(new Error(`Operation "${operation}" not found`));
192
+ return;
193
+ }
194
+ }
195
+
196
+ // Get the operation function - confirmed to exist at this point
115
197
  var axlFunc = client.AXLAPIService.AXLPort[operation];
116
198
 
199
+ // Define namespace context with the correct version
200
+ const nsContext = {
201
+ ns: namespaceUrl,
202
+ };
203
+
204
+ // Prepare message for specific operations
205
+ let message = tags;
206
+
207
+ // Handle operations that start with "apply" or "reset"
208
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
209
+ const operationKey = operation;
210
+
211
+ // If there's a nested structure, flatten it
212
+ if (tags[operationKey]) {
213
+ // Check if uuid or name is provided in the nested structure
214
+ if (tags[operationKey].uuid) {
215
+ message = { uuid: tags[operationKey].uuid };
216
+ } else if (tags[operationKey].name) {
217
+ message = { name: tags[operationKey].name };
218
+ }
219
+ // If neither uuid nor name is provided, try to use any available
220
+ else {
221
+ // Try to use uuid or name from the top level as fallback
222
+ message = tags.uuid ? { uuid: tags.uuid } : { name: tags.name };
223
+ }
224
+ }
225
+ }
226
+
227
+ // Execute the operation
117
228
  axlFunc(
118
- tags,
229
+ message,
119
230
  function (err, result) {
120
231
  if (err) {
121
232
  reject(err);
233
+ return;
122
234
  }
123
235
  if (result?.hasOwnProperty("return")) {
124
236
  var output = result.return;
@@ -130,10 +242,10 @@ class axlService {
130
242
  }
131
243
  resolve(output);
132
244
  } else {
133
- reject("No return results");
245
+ resolve(result || { return: "Success" });
134
246
  }
135
247
  },
136
- null,
248
+ nsContext,
137
249
  customRequestHeader
138
250
  );
139
251
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cisco-axl",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "A library to make Cisco AXL a lot easier",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -161,13 +161,33 @@ class axlService {
161
161
 
162
162
  return new Promise((resolve, reject) => {
163
163
  soap.soap.createClient(options.url, wsdlOptions, function (err: any, client: any) {
164
- const customRequestHeader = { connection: "keep-alive" };
165
-
166
164
  if (err) {
167
165
  reject(err);
168
166
  return;
169
167
  }
170
-
168
+
169
+ // Get the properly versioned namespace URL
170
+ const namespaceUrl = `http://www.cisco.com/AXL/API/${options.version}`;
171
+
172
+ // 1. Set envelope key
173
+ client.wsdl.options = {
174
+ ...client.wsdl.options,
175
+ envelopeKey: "soapenv", // Change default 'soap' to 'soapenv'
176
+ };
177
+
178
+ // 2. Define namespaces with the correct version
179
+ client.wsdl.definitions.xmlns.ns = namespaceUrl;
180
+
181
+ // Remove ns1 if it exists
182
+ if (client.wsdl.definitions.xmlns.ns1) {
183
+ delete client.wsdl.definitions.xmlns.ns1;
184
+ }
185
+
186
+ const customRequestHeader = {
187
+ connection: "keep-alive",
188
+ SOAPAction: `"CUCM:DB ver=${options.version} ${operation}"`,
189
+ };
190
+
171
191
  client.setSecurity(new soap.soap.BasicAuthSecurity(options.username, options.password));
172
192
  client.setEndpoint(options.endpoint);
173
193
 
@@ -175,33 +195,115 @@ class axlService {
175
195
  reject(err.root.Envelope.Body.Fault);
176
196
  });
177
197
 
198
+ // Check if the operation function exists
199
+ if (!client.AXLAPIService || !client.AXLAPIService.AXLPort || typeof client.AXLAPIService.AXLPort[operation] !== "function") {
200
+ // For operations that aren't found, try a manual approach
201
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
202
+ // Determine which parameter to use (name or uuid)
203
+ const operationObj = tags[operation] || tags;
204
+
205
+ // Check if uuid or name is provided
206
+ let paramTag, paramValue;
207
+
208
+ if (operationObj.uuid) {
209
+ paramTag = "uuid";
210
+ paramValue = operationObj.uuid;
211
+ } else {
212
+ paramTag = "name";
213
+ paramValue = operationObj.name;
214
+ }
215
+
216
+ const rawXml = `<?xml version="1.0" encoding="UTF-8"?>
217
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="${namespaceUrl}">
218
+ <soapenv:Header/>
219
+ <soapenv:Body>
220
+ <ns:${operation}>
221
+ <${paramTag}>${paramValue}</${paramTag}>
222
+ </ns:${operation}>
223
+ </soapenv:Body>
224
+ </soapenv:Envelope>`;
225
+
226
+ // Use client.request for direct XML request
227
+ (client as any)._request(
228
+ options.endpoint,
229
+ rawXml,
230
+ function (err: any, body: any, response: any) {
231
+ if (err) {
232
+ reject(err);
233
+ return;
234
+ }
235
+
236
+ // Parse the response
237
+ try {
238
+ const result = { return: "Success" }; // Default success response
239
+ resolve(result);
240
+ } catch (parseError) {
241
+ reject(parseError);
242
+ }
243
+ },
244
+ customRequestHeader
245
+ );
246
+
247
+ return;
248
+ } else {
249
+ reject(new Error(`Operation "${operation}" not found`));
250
+ return;
251
+ }
252
+ }
253
+
254
+ // Get the operation function - confirmed to exist at this point
178
255
  const axlFunc = client.AXLAPIService.AXLPort[operation];
179
256
 
257
+ // Define namespace context with the correct version
258
+ const nsContext = {
259
+ ns: namespaceUrl,
260
+ };
261
+
262
+ // Prepare message for specific operations
263
+ let message = tags;
264
+
265
+ // Handle operations that start with "apply" or "reset"
266
+ if (operation.startsWith("apply") || operation.startsWith("reset")) {
267
+ const operationKey = operation;
268
+
269
+ // If there's a nested structure, flatten it
270
+ if (tags[operationKey]) {
271
+ // Check if uuid or name is provided in the nested structure
272
+ if (tags[operationKey].uuid) {
273
+ message = { uuid: tags[operationKey].uuid };
274
+ } else if (tags[operationKey].name) {
275
+ message = { name: tags[operationKey].name };
276
+ }
277
+ // If neither uuid nor name is provided, try to use any available
278
+ else {
279
+ // Try to use uuid or name from the top level as fallback
280
+ message = tags.uuid ? { uuid: tags.uuid } : { name: tags.name };
281
+ }
282
+ }
283
+ }
284
+
285
+ // Execute the operation
180
286
  axlFunc(
181
- tags,
287
+ message,
182
288
  function (err: any, result: any) {
183
289
  if (err) {
184
290
  reject(err);
185
291
  return;
186
292
  }
187
-
188
293
  if (result?.hasOwnProperty("return")) {
189
294
  const output = result.return;
190
-
191
295
  if (clean) {
192
296
  cleanObj(output);
193
297
  }
194
-
195
298
  if (removeAttributes) {
196
299
  cleanAttributes(output);
197
300
  }
198
-
199
301
  resolve(output);
200
302
  } else {
201
- reject("No return results");
303
+ resolve(result || { return: "Success" });
202
304
  }
203
305
  },
204
- null,
306
+ nsContext,
205
307
  customRequestHeader
206
308
  );
207
309
  });