def contactsForMessage()

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)
    }
  }