To use this function add it to the class library file named Utilities.ts
GitHub Repository: https://github.com/SimonSparksUK/Orchestrator
Filename: Utilities.ts
Function: validateWorkflowInputs
public static validateWorkflowInputs(strResourceActionType: string, strResourceActionName: string, objWorkflowToken: WorkflowToken): void {
let strWorkflowName: string = `${strResourceActionType} - ${strResourceActionName}`;
let objLogger: Logger = Logger.getLogger(`${strWorkflowName} - validateFunctionInputs`);
let objProperties: Properties = objWorkflowToken.getInputParameters();
let objWorkflow: Workflow = objWorkflowToken.currentWorkflow;
let arrParameter: Parameter[] = objWorkflow.inParameters;
arrParameter.forEach((objParameter: Parameter): void => {
objLogger.info(`Input Parameter: ${objParameter.name}:${objParameter.type} ( ${objParameter.description} ).`);
let objValue: any = objProperties.get(objParameter.name);
let strType: string = System.getObjectType(objValue);
strType = strType.toLowerCase();
if (strType === "string" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "string" && objValue === "") {
throw new Error_RequiredParameter_EmptyString(objParameter.name);
} else if (strType === "number" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "number" && Number.isNaN(objValue)) {
throw new Error_RequiredParameter_NotANumber(objParameter.name);
} else if (strType === "boolean" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "boolean" && (objValue !== true || objValue !== false)) {
throw new Error_RequiredParameter_NotTrueOrFalse(objParameter.name);
} else if (strType === "date" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "date" && !(objValue instanceof Date)) {
throw new Error_RequiredParameter_NotADate(objParameter.name);
} else if (strType === "array" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "array" && objValue.length === 0) {
throw new Error_RequiredParameter_EmptyArray(objParameter.name);
} else if (strType === "array" && Array.isArray(objValue) === false) {
throw new Error_RequiredParameter_NotAnArray(objParameter.name);
} else if (strType === "object" && objValue === null) {
throw new Error_RequiredParameter_Null(objParameter.name);
} else if (strType === "object" && objValue instanceof eval(strType)) {
throw new Error_RequiredParameter_Missing(objParameter.name);
}
});
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
