Skip to content

Commit

Permalink
#21 ReAdd deleted file
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed May 6, 2017
1 parent 3ef6e2a commit d5fd06a
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions app/services/AnalyzerSrv.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package services

import javax.inject.{ Inject, Singleton }

import models._
import play.api.Logger

import scala.concurrent.Future

@Singleton
class AnalyzerSrv @Inject() (
jobSrv: JobSrv,
mispSrv: MispSrv,
externalAnalyzerSrv: ExternalAnalyzerSrv) {

private[AnalyzerSrv] lazy val logger = Logger(getClass)

def list: Seq[Analyzer] = externalAnalyzerSrv.list ++ mispSrv.list

def get(analyzerId: String): Option[Analyzer] = list.find(_.id == analyzerId)

def listForType(dataType: String): Seq[Analyzer] = list.filter(_.dataTypeList.contains(dataType))

def analyze(analyzerId: String, artifact: Artifact): Future[Job] = {
get(analyzerId)
.map { analyzer analyze(analyzer, artifact) }
.getOrElse(sys.error("analyzer not found"))
}

def analyze(analyzer: Analyzer, artifact: Artifact): Future[Job] = {
val report = analyzer match {
case ea: ExternalAnalyzer externalAnalyzerSrv.analyze(ea, artifact)
case mm: MispModule mispSrv.analyze(mm, artifact)
}
jobSrv.create(analyzer, artifact, report)
}
}

0 comments on commit d5fd06a

Please sign in to comment.