private def findUnderSpecifiedMatches()

in common/src/main/scala/com/gu/anghammarad/common/Contacts.scala [68:85]


  private def findUnderSpecifiedMatches(targets: List[Target], mappings: List[Mapping]): Option[List[Contact]] = {
    mappings.filter { case Mapping(mappingTargets, _) =>
      targets.toSet subsetOf mappingTargets.toSet
    } match {
      case Nil =>
        None
      case matches =>
        val validMatches = matches.filter { case Mapping(mappingTargets, _) =>
          if (includesApp(mappingTargets)) appMatches(targets, mappingTargets)
          else if (includesStack(mappingTargets)) stackMatches(targets, mappingTargets)
          else if (includesAwsAccount(mappingTargets)) awsAccountMatches(targets, mappingTargets)
          else if (includesGithubTeamSlug(mappingTargets)) githubTeamSlugMatches(targets, mappingTargets)
          else true
        }
        sortMappingsByTargets(targets, validMatches)
          .headOption.map(_.contacts)
    }
  }