diff --git a/app/controllers/Statistics.scala b/app/controllers/Statistics.scala index 4afd9fc..26e26b8 100644 --- a/app/controllers/Statistics.scala +++ b/app/controllers/Statistics.scala @@ -210,6 +210,17 @@ class Statistics @Inject() ( } } + def allFiles(selectorOption: Option[String]) = ReadAction.async { implicit req => + val (lastRefreshTime, resultsFuture) = projectReportsProvider.resultsForVersions(versions) + resultsFuture flatMap { allResults => + select(allResults, selectorOption).fold(Future.successful(notFound())){ selection => + Future.successful(Ok(Txt( + selection.result.groupedDependencies.flatMap(_.fileNames.map(_.replace('\\', '/'))).toSet.toIndexedSeq.sorted.mkString("\n") + ))) + } + } + } + def allLibraries(selectorOption: Option[String]) = ReadAction.async { implicit req => val (lastRefreshTime, resultsFuture) = projectReportsProvider.resultsForVersions(versions) resultsFuture flatMap { allResults => diff --git a/conf/routes b/conf/routes index d77193d..f2032cf 100644 --- a/conf/routes +++ b/conf/routes @@ -23,6 +23,7 @@ GET /stats/basic/*selector controllers.Statistics.basic(selec GET /stats/details controllers.Statistics.vulnerabilities(selector: Option[String], tagId: Option[Int]) GET /stats/libraries/vulnerable controllers.Statistics.vulnerableLibraries(selector: Option[String]) GET /stats/libraries/all controllers.Statistics.allLibraries(selector: Option[String]) +GET /stats/libraries/files controllers.Statistics.allFiles(selector: Option[String]) GET /stats/libraries/gavs controllers.Statistics.allGavs(selector: Option[String]) GET /notifications controllers.Notifications.listProjects()