diff --git a/app/controllers/Notifications.scala b/app/controllers/Notifications.scala index cfd6415..eaf7a0d 100644 --- a/app/controllers/Notifications.scala +++ b/app/controllers/Notifications.scala @@ -61,7 +61,10 @@ class Notifications @Inject()( ) = { val vulnerabilitiesByName = lds.vulnerabilitiesToDependencies.map{case (v, deps) => (v.name, (v, deps))} for{ - tickets <- ep.loadUnfinishedTickets().map(_.map{case rec @ (id, ticket) => ticket.vulnerabilityName->rec}.toMap) + // TODO: Prevent loading all tickets + allTickets <- ep.loadAllTickets().map(_.map{case rec @ (id, ticket) => ticket.vulnerabilityName->rec}.toMap) + tickets = allTickets.filter(_._2._2.done == false) + //tickets <- ep.loadUnfinishedTickets().map(_.map{case rec @ (id, ticket) => ticket.vulnerabilityName->rec}.toMap) // Check existing tickets existingTicketsIds = tickets.values.map(_._1).toSet ticketsById = tickets.values.toMap @@ -86,7 +89,7 @@ class Notifications @Inject()( } } // Check new tickets - missingTickets = vulnerabilitiesByName.keySet -- tickets.keySet + missingTickets = vulnerabilitiesByName.keySet -- allTickets.keySet newTicketIds <- Future.traverse(filterMissingTickets(missingTickets)){vulnerabilityName => val (vulnerability, dependencies) = vulnerabilitiesByName(vulnerabilityName) reportVulnerability(vulnerability, dependencies).flatMap{ ticket => diff --git a/app/services/VulnerabilityNotificationService.scala b/app/services/VulnerabilityNotificationService.scala index c12414c..6f9e074 100644 --- a/app/services/VulnerabilityNotificationService.scala +++ b/app/services/VulnerabilityNotificationService.scala @@ -68,6 +68,10 @@ class VulnerabilityNotificationService @Inject() (protected val dbConfigProvider ept.tickets.filter(_.done === false).result ) + def loadAllTickets(): Future[Seq[(Int, ExportedVulnerability[T])]] = db.run( + ept.tickets.result + ) + def changeProjects(ticketId: Int, diff: SetDiff[String], projects: ProjectsWithReports): Future[Unit] = db.run( DBIO.seq( ept.tickets.filter(_.id === ticketId).map(_.done).update(diff.newSet.isEmpty),