@zowe/cics-for-zowe-sdk
Version:
Zowe SDK for IBM CICS Transaction Server
79 lines • 3.48 kB
JavaScript
;
/**
* This program and the accompanying materials are made available under the terms of the
* Eclipse Public License v2.0 which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-v20.html
*
* SPDX-License-Identifier: EPL-2.0
*
* Copyright Contributors to the Zowe Project.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
const imperative_1 = require("@zowe/imperative");
const constants_1 = require("../constants");
/**
* Class for providing static utility methods
* @export
* @class Utils
*/
class Utils {
/**
* Get uri for requesting a resources in CICS through CMCI REST API
* @param {string} resourceName - CMCI resource name
* @param {IGetResourceUriOptions} options - CMCI resource options
*/
static getResourceUri(resourceName, options) {
imperative_1.ImperativeExpect.toBeDefinedAndNonBlank(resourceName, "CICS Resource name", "CICS resource name is required");
let delimiter = "?"; // initial delimiter
const cicsPlex = options?.cicsPlex == null ? "" : `${encodeURIComponent(options.cicsPlex)}/`;
const region = options?.regionName == null ? "" : encodeURIComponent(options.regionName);
let cmciResource = `/${constants_1.CicsCmciConstants.CICS_SYSTEM_MANAGEMENT}/${resourceName}/${cicsPlex}${region}`;
if (options?.criteria) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.CRITERIA}=${this.enforceParentheses(encodeURIComponent(options.criteria))}`;
delimiter = "&";
}
if (options?.parameter) {
cmciResource += `${delimiter}PARAMETER=${encodeURIComponent(options.parameter)}`;
delimiter = "&";
}
if (options?.queryParams?.summonly) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.SUMM_ONLY}`;
delimiter = "&";
}
if (options?.queryParams?.nodiscard) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.NO_DISCARD}`;
delimiter = "&";
}
if (options?.queryParams?.overrideWarningCount) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.OVERRIDE_WARNING_COUNT}`;
}
return cmciResource;
}
static getCacheUri(cacheToken, options) {
imperative_1.ImperativeExpect.toBeDefinedAndNonBlank(cacheToken, "CICS Results Cache Token", "CICS Results Cache Token is required");
let cmciResource = `/${constants_1.CicsCmciConstants.CICS_SYSTEM_MANAGEMENT}/${constants_1.CicsCmciConstants.CICS_RESULT_CACHE}/${cacheToken}`;
if (options?.startIndex) {
cmciResource += `/${options.startIndex}`;
if (options.count) {
cmciResource += `/${options.count}`;
}
}
let delimiter = "?";
// Add NODISCARD unless explicitally told not to
if (!options || options.nodiscard == null || options.nodiscard === true) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.NO_DISCARD}`;
delimiter = "&";
}
if (options?.summonly) {
cmciResource += `${delimiter}${constants_1.CicsCmciConstants.SUMM_ONLY}`;
}
return cmciResource;
}
static enforceParentheses(input) {
return input.startsWith("(") ? input : `(${input})`;
}
}
exports.Utils = Utils;
//# sourceMappingURL=Utils.js.map