cisco-axl 1.3.1 → 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.
- package/.claude/settings.local.json +10 -0
- package/dist/index.js +94 -4
- package/dist/index.js.map +1 -1
- package/index.js +0 -82
- package/package.json +1 -1
- package/src/index.ts +112 -10
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
|
-
|
|
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
|
-
|
|
281
|
+
resolve(result || { return: "Success" });
|
|
192
282
|
}
|
|
193
|
-
},
|
|
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
|
@@ -251,88 +251,6 @@ class axlService {
|
|
|
251
251
|
});
|
|
252
252
|
});
|
|
253
253
|
}
|
|
254
|
-
// executeOperation(operation, tags, opts) {
|
|
255
|
-
// var options = this._OPTIONS;
|
|
256
|
-
|
|
257
|
-
// var clean = opts?.clean ? opts.clean : false;
|
|
258
|
-
// var dataContainerIdentifierTails = opts?.dataContainerIdentifierTails ? opts.dataContainerIdentifierTails : "_data";
|
|
259
|
-
// var removeAttributes = opts?.removeAttributes ? opts.removeAttributes : false;
|
|
260
|
-
|
|
261
|
-
// // Let's remove empty top level strings. Also filter out json-variables
|
|
262
|
-
// Object.keys(tags).forEach((k) => (tags[k] == "" || k.includes(dataContainerIdentifierTails)) && delete tags[k]);
|
|
263
|
-
|
|
264
|
-
// return new Promise((resolve, reject) => {
|
|
265
|
-
// soap.createClient(options.url, wsdlOptions, function (err, client) {
|
|
266
|
-
// // Key changes to fix the namespace issue
|
|
267
|
-
|
|
268
|
-
// // 1. Define the namespace prefix mapping
|
|
269
|
-
// client.wsdl.definitions.xmlns.ns = "http://www.cisco.com/AXL/API/15.0";
|
|
270
|
-
|
|
271
|
-
// // 2. Remove any ns1 namespace mapping if it exists
|
|
272
|
-
// if (client.wsdl.definitions.xmlns.ns1) {
|
|
273
|
-
// delete client.wsdl.definitions.xmlns.ns1;
|
|
274
|
-
// }
|
|
275
|
-
|
|
276
|
-
// // 3. Set the envelope key
|
|
277
|
-
// client.wsdl.options = {
|
|
278
|
-
// ...client.wsdl.options,
|
|
279
|
-
// envelopeKey: "soapenv", // Change default 'soap' to 'soapenv'
|
|
280
|
-
// };
|
|
281
|
-
|
|
282
|
-
// // 4. Important: Fix the structure of the tags object
|
|
283
|
-
// // Instead of having nested applyRoutePartition, simplify the structure
|
|
284
|
-
// if (operation === "applyRoutePartition" && tags.applyRoutePartition) {
|
|
285
|
-
// tags = { name: tags.applyRoutePartition.name };
|
|
286
|
-
// }
|
|
287
|
-
|
|
288
|
-
// var customRequestHeader = {
|
|
289
|
-
// connection: "keep-alive",
|
|
290
|
-
// SOAPAction: `"CUCM:DB ver=${options.version} ${operation}"`,
|
|
291
|
-
// };
|
|
292
|
-
|
|
293
|
-
// if (err) {
|
|
294
|
-
// reject(err);
|
|
295
|
-
// }
|
|
296
|
-
// client.setSecurity(new soap.BasicAuthSecurity(options.username, options.password));
|
|
297
|
-
// client.setEndpoint(options.endpoint);
|
|
298
|
-
|
|
299
|
-
// client.on("soapError", function (err) {
|
|
300
|
-
// reject(err.root.Envelope.Body.Fault);
|
|
301
|
-
// });
|
|
302
|
-
|
|
303
|
-
// var axlFunc = client.AXLAPIService.AXLPort[operation];
|
|
304
|
-
|
|
305
|
-
// // 5. Add the correct namespace to the operation call
|
|
306
|
-
// const nsContext = {
|
|
307
|
-
// ns: `http://www.cisco.com/AXL/API/${options.version}`,
|
|
308
|
-
// };
|
|
309
|
-
|
|
310
|
-
// axlFunc(
|
|
311
|
-
// tags,
|
|
312
|
-
// function (err, result) {
|
|
313
|
-
// if (err) {
|
|
314
|
-
// reject(err);
|
|
315
|
-
// }
|
|
316
|
-
// if (result?.hasOwnProperty("return")) {
|
|
317
|
-
// var output = result.return;
|
|
318
|
-
// if (clean) {
|
|
319
|
-
// cleanObj(output);
|
|
320
|
-
// }
|
|
321
|
-
// if (removeAttributes) {
|
|
322
|
-
// cleanAttributes(output);
|
|
323
|
-
// }
|
|
324
|
-
// resolve(output);
|
|
325
|
-
// } else {
|
|
326
|
-
// reject("No return results");
|
|
327
|
-
// }
|
|
328
|
-
// },
|
|
329
|
-
// // Add namespace mapping for the operation call
|
|
330
|
-
// nsContext,
|
|
331
|
-
// customRequestHeader
|
|
332
|
-
// );
|
|
333
|
-
// });
|
|
334
|
-
// });
|
|
335
|
-
// }
|
|
336
254
|
}
|
|
337
255
|
|
|
338
256
|
const nestedObj = (object) => {
|
package/package.json
CHANGED
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
|
-
|
|
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
|
-
|
|
303
|
+
resolve(result || { return: "Success" });
|
|
202
304
|
}
|
|
203
305
|
},
|
|
204
|
-
|
|
306
|
+
nsContext,
|
|
205
307
|
customRequestHeader
|
|
206
308
|
);
|
|
207
309
|
});
|