export function getPassFailCriteriaFromString()

in src/Utils/PassFailCriteriaUtil.ts [8:54]


export function getPassFailCriteriaFromString(passFailCriteria: (string | {[key: string]: string})[]): { [key: string]: number } {
    let failureCriteriaValue : {[key: string] : number} = {};
    passFailCriteria.forEach(criteria => {
        let criteriaString = criteria as string;
        let data = {
            aggregate: "",
            clientMetric: "",
            condition: "",
            value: "",
            requestName: "",
            action: "",
        }
        if(typeof criteria !== "string"){
            let request = Object.keys(criteria)[0]
            data.requestName = request;
            criteriaString = criteria[request]
        }
        let tempStr: string = "";
        for(let i=0; i<criteriaString.length; i++){
            if(criteriaString[i] == '('){
                data.aggregate = tempStr.trim();
                tempStr = "";
            }
            else if(criteriaString[i] == ')'){
                data.clientMetric = tempStr;
                tempStr = "";
            }
            else if(criteriaString[i] == ','){
                data.condition = tempStr.substring(0, indexOfFirstDigit(tempStr)).trim();
                data.value = tempStr.substr(indexOfFirstDigit(tempStr)).trim();
                tempStr = "";
            }
            else{
                tempStr += criteriaString[i];
            }
        }
        if(criteriaString.indexOf(',') != -1){
            data.action = tempStr.trim()
        } 
        else{
            data.condition = tempStr.substring(0, indexOfFirstDigit(tempStr)).trim();
            data.value = tempStr.substr(indexOfFirstDigit(tempStr)).trim();
        }
        validateCriteriaAndConvertToWorkingStringModel(data, failureCriteriaValue);
    });
    return failureCriteriaValue;
}