mirror of
https://github.com/ysoftdevs/odc-analyzer.git
synced 2026-01-15 00:03:59 +01:00
26 lines
1.3 KiB
Scala
26 lines
1.3 KiB
Scala
package models.odc
|
|
|
|
import com.ysoft.odc.{CvssRating, CWE}
|
|
import models.odc.profile.api._
|
|
import slick.lifted.Tag
|
|
|
|
case class Vulnerability (cve: String, description: String, /*cweOption: Option[CWE],*/ cvss: CvssRating)
|
|
class Vulnerabilities(tag: Tag) extends Table[(Int, Vulnerability)](tag, "vulnerability") {
|
|
def id = column[Int]("id")
|
|
def cve = column[String]("cve")
|
|
def description = column[String]("description")
|
|
//def cweOption = column[String]("cwe").?
|
|
def cvssScore = column[Double]("cvssv2score").?
|
|
def authentication = column[String]("cvssv2authentication").?
|
|
def availabilityImpact = column[String]("cvssv2availabilityimpact").?
|
|
def accessVector = column[String]("cvssv2accessvector").?
|
|
def integrityImpact = column[String]("cvssv2integrityimpact").?
|
|
def cvssAccessComplexity = column[String]("cvssv2accesscomplexity").?
|
|
def cvssConfidentialityImpact = column[String]("cvssv2confidentialityimpact").?
|
|
|
|
def cvssRating = (cvssScore, authentication, availabilityImpact, accessVector, integrityImpact, cvssAccessComplexity, cvssConfidentialityImpact) <> (CvssRating.tupled, CvssRating.unapply)
|
|
//def cweOptionMapped = cweOption <> ((_: Option[String]).map(CWE.forIdentifierWithDescription), (_: Option[CWE]).map(CWE.unapply))
|
|
def base = (cve, description, cvssRating) <> (Vulnerability.tupled, Vulnerability.unapply)
|
|
|
|
def * = (id, base)
|
|
} |