in common/src/main/scala/com/gu/anghammarad/common/Contacts.scala [143:170]
def contactsForMessage(requestedChannel: RequestedChannel, channelContacts: List[(Channel, Contact)]): Try[List[(Channel, Contact)]] = {
val emailContacts = channelContacts.filter { case (channel, _) =>
channel == Email
}
val hangoutsContacts = channelContacts.filter { case (channel, _) =>
channel == HangoutsChat
}
val resolvedContacts = requestedChannel match {
case Email =>
emailContacts
case HangoutsChat =>
hangoutsContacts
case All =>
emailContacts ++ hangoutsContacts
case Preferred(Email) =>
if (emailContacts.nonEmpty) emailContacts
else hangoutsContacts
case Preferred(HangoutsChat) =>
if (hangoutsContacts.nonEmpty) hangoutsContacts
else emailContacts
}
if (resolvedContacts.isEmpty) {
Fail(s"Could not find contacts for messages on the requested channels $requestedChannel, contacts($channelContacts)")
} else {
Success(resolvedContacts)
}
}