Added support for mail notifications and WIP JIRA export.

This commit is contained in:
Šesták Vít
2016-02-12 19:50:40 +01:00
parent f4fa0ee948
commit 2fb2c3fd72
32 changed files with 728 additions and 51 deletions
@@ -0,0 +1,39 @@
package modules
import com.google.inject.{AbstractModule, Provides}
import com.ysoft.odc.{Absolutizer, CredentialsAtlassianAuthentication}
import net.ceedubs.ficus.Ficus._
import net.ceedubs.ficus.readers.ArbitraryTypeReader._
import net.codingwell.scalaguice.ScalaModule
import play.api.Configuration
import play.api.libs.ws.WSClient
import services.{IssueTrackerService, JiraIssueTrackerService}
import scala.concurrent.ExecutionContext
class IssueTrackerExportModule extends AbstractModule with ScalaModule{
override def configure(): Unit = {
}
@Provides
def provideIssueTrackerOption(conf: Configuration, absolutizer: Absolutizer)(implicit executionContext: ExecutionContext, wSClient: WSClient): Option[IssueTrackerService] = {
conf.getConfig("yssdc.export.issueTracker").map(issueTrackerConfiguration(absolutizer))
}
private def issueTrackerConfiguration(absolutizer: Absolutizer)(conf: Configuration)(implicit executionContext: ExecutionContext, wSClient: WSClient): IssueTrackerService = conf.getString("provider") match{
case Some("jira") =>
conf.getString("authentication.type") match {
case Some("credentials") =>
case other => sys.error("unknown authentication type: "+other)
}
new JiraIssueTrackerService(
absolutizer = absolutizer,
server = conf.underlying.as[String]("server"),
projectId = conf.underlying.as[Int]("projectId"),
vulnerabilityIssueType = conf.underlying.as[Int]("vulnerabilityIssueType"),
atlassianAuthentication = conf.underlying.as[CredentialsAtlassianAuthentication]("authentication")
)
case other => sys.error("unknown provider for issue tracker: "+other)
}
}