I need to calculate a score (number) based on string values selected from single select fields.
I'm not a great groovy scriptwriter so I'm sure my approach on how to define the numeric values based on the string option select is wrong. Please let me know how I could accomplish this. Thanks!
import com.atlassian.jira.component.ComponentAccessor;
def customFieldManager = ComponentAccessor.customFieldManager
//define custom fields
def cfA = customFieldManager.getCustomFieldObject(26918) // custom field name "PII"
def cfB = customFieldManager.getCustomFieldObject(26914) // custom field name "Signal"
def cfC = customFieldManager.getCustomFieldObject(26915) // custom field name "Auth"
def cfD = customFieldManager.getCustomFieldObject(26916) // custom field name "Public-Facing?"
def cfE = customFieldManager.getCustomFieldObject(26917) // custom field name "Cryptography"
//get custom field values
def valA = cfA.getValue(issue)
def valB = cfB.getValue(issue)
def valC = cfC.getValue(issue)
def valD = cfD.getValue(issue)
def valE = cfE.getValue(issue)
//give select option numeric values
def scoreA = {
if (valA() == 'Yes') 5 as Double;
else 0 as Double;
}
def scoreB = {
if (valB() == 'Yes') 5 as Double;
else 0 as Double;
}
def scoreC = {
if (valC() == 'Internal') 5 as Double;
else if (valC() == 'External') 8 as Double;
else 0 as Double;
}
def scoreD = {
if (valD() == 'Yes (whole internet)') 5 as Double;
else if (valC() == 'Yes (only to some IPs)') 3 as Double;
else 0 as Double;
}
def scoreE = {
if (valE() == 'Yes') 5 as Double;
else 0 as Double;
}
//add numbers together for priority calculation value
return (scoreA + scoreB + scoreC + scoreD + scoreE) as Double