Reading a Global Setting in a script

You will only need the “GQL” functions or the “SQL” functions; not both. This is just to illustrate different ways to get the same result. The “SQL” functions were the only way to do this via JScript before GraphQL came into existence. Now my preference is the “GQL” methods.

Name: Update Setting
Handler: setting

function readGlobal(settingName,method) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	method  = typeof method  === 'undefined' ? 'GQL' : method;
	
	var returnVal = "UNKNOWN";

    if (method=='SQL') {
	  returnVal = readGlobalSQL(settingName);
	} else {
	  returnVal = readGlobalGQL(settingName);
	}
	
	return returnVal;
}

function readGlobalSQL(settingName) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	
	var qry = "";
	var res = "";
	var currentValue = "UNKNOWN";
	var newValue = "";
	
	if (settingName != '') {
	  qry = "SELECT [Value] FROM [ProgramSettingValues] WHERE [Name] = '" + settingName + "'";
	  res = sql.Exec(qry);
	  currentValue = res[0];
	}

    return currentValue;
}

function readGlobalGQL(settingName) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	
	var qry = "";
	var res = "";
	var currentValue = "UNKNOWN";
	var newValue = "";
	
	if (settingName != '') {
      qry = '{setting:getGlobalSetting(name:"'+ settingName + '"){name,value}}';
	  res = gql.Exec(qry);
	  res = JSON.parse(res);
	  currentValue = res.data.setting.value;
	}

    return currentValue;
}

function updateGlobal(settingName,settingValue,method) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	settingValue = typeof settingValue === 'undefined' ? '' : settingValue;
	method  = typeof method  === 'undefined' ? 'GQL' : method;
	
	var returnVal = "UNKNOWN";

    if (method=='SQL') {
	  returnVal = updateGlobalSQL(settingName,settingValue);
	} else {
	  returnVal = updateGlobalGQL(settingName,settingValue);
	}
	
	return renturnVal;
}


function updateGlobalSQL(settingName,settingValue) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	settingValue = typeof settingValue === 'undefined' ? '' : settingValue;
	
	var qry = "";
	var res = "";
	var currentValue = "";
	var newValue = "";
	
	currentValue = readGlobalSQL(settingName);
	
	if (settingValue == 'increase') {
		newValue = Helper.ToNumber(currentValue) + 1;
	} else if (settingValue == 'decrease') {
		newValue = Helper.ToNumber(currentValue) - 1;
	} else {
		newValue = settingValue;
	}
	
	qry = "UPDATE [ProgramSettingValues] SET [Value]='" + newValue + "' WHERE [Name] = '" + settingName + "'";
	res = sql.Exec(qry);
	
	return newValue;
}

function updateGlobalGQL(settingName,settingValue) {
	settingName  = typeof settingName  === 'undefined' ? '' : settingName;
	settingValue = typeof settingValue === 'undefined' ? '' : settingValue;
	
	var qry = "";
	var res = "";
	var currentValue = "";
	var newValue = "";
	
	qry = '{setting:getGlobalSetting(name:"'+ settingName + '"){name,value}}';
	res = gql.Exec(qry);
	res = JSON.parse(res);
	currentValue = readGlobalGQL(settingName);
	
	if (settingValue == 'increase') {
		newValue = Helper.ToNumber(currentValue) + 1;
	} else if (settingValue == 'decrease') {
		newValue = Helper.ToNumber(currentValue) - 1;
	} else {
		newValue = settingValue;
	}
	
	qry = 'mutation m {setting:updateGlobalSetting(name:"'+ settingName + '",value:"' + newValue + '"){name,value}}';
	res = gql.Exec(qry);
	res = JSON.parse(res);
	newValue = res.data.setting.value;
	
	return newValue;
}

Usage:

setting.readGlobal('mySettingName')
setting.updateGlobal('mySettingName','mysettingValue')

3 Likes