diff --git a/app/controllers/DependencyCheckReportsParser.scala b/app/controllers/DependencyCheckReportsParser.scala index 7d6d03d..cbfe92a 100644 --- a/app/controllers/DependencyCheckReportsParser.scala +++ b/app/controllers/DependencyCheckReportsParser.scala @@ -139,10 +139,14 @@ object DependencyCheckReportsParser{ private val ProjectSelectorPattern = """^project:(.*)$""".r private val TeamSelectorPattern = """^team:(.*)$""".r - private def parseFilter(filter: String): Filter = filter match { - case ProjectSelectorPattern(project) => ProjectFilter(projectsReportInfo.reportIdToReportInfo(project)) - case TeamSelectorPattern(team) => TeamFilter(projects.teamById(team)) - case other => BadFilter(other) + private def parseFilter(filter: String): Filter = { + def mapToFilter[T](dataOption: Option[T], filterCreator: T => Filter): Filter = + dataOption.fold[Filter](BadFilter(filter))(filterCreator) + filter match { + case ProjectSelectorPattern(project) => mapToFilter(projectsReportInfo.reportIdToReportInfo.get(project), ProjectFilter) + case TeamSelectorPattern(team) => mapToFilter(projects.getTeamById(team), TeamFilter) + case other => BadFilter(other) + } } def selection(selectorOption: Option[String]): Option[ResultWithSelection] = { diff --git a/app/controllers/Projects.scala b/app/controllers/Projects.scala index 501aab4..beeebc7 100644 --- a/app/controllers/Projects.scala +++ b/app/controllers/Projects.scala @@ -21,6 +21,7 @@ class Projects ( ) def teamById(id: String): Team = teamsById(id) + def getTeamById(id: String): Option[Team] = teamsById.get(id) def teamSet: Set[Team] = teamsById.values.toSet