in hq/app/db/IamRemediationDb.scala [154:173]
private def valueFromDbData[A](dbData: Map[String, AttributeValue], key: String, f: AttributeValue => A): Attempt[A] =
Attempt.fromOption(
dbData.get(key).flatMap(data => Option(f(data))),
Failure(
s"The item retrieved from the database with id ${dbData.get("id")} has an invalid attribute with key $key",
s"Failed to deserialise database item into an IamRemediationActivity object",
500,
None).attempt
)
def iamRemediationActivityFromString(str: String): Attempt[IamRemediationActivityType] = {
str match {
case "Warning" => Attempt.Right(Warning)
case "FinalWarning" => Attempt.Right(FinalWarning)
case "Remediation" => Attempt.Right(Remediation)
case _ => Attempt.Left {
Failure(s"Could not turn $str to a IamRemediationActivityType", "Did not understand database record", 500).attempt
}
}
}