Files
odc-analyzer/app/models/VulnerabilitySubscription.scala

22 lines
972 B
Scala

package models
import models.profile.api._
import slick.lifted.Tag
import com.mohiva.play.silhouette.api.LoginInfo
case class VulnerabilitySubscription(user: LoginInfo, project: String)
class LoginInfoColumns(prefix: String, table: Table[_]) {
import table.column
def providerId = column[String](s"${prefix}_provider_id")
def providerKey = column[String](s"${prefix}_provider_key")
def apply() = (providerId, providerKey) <> (LoginInfo.tupled, LoginInfo.unapply)
def === (other: LoginInfo): Rep[Boolean] = (providerId === other.providerID) && (providerKey === other.providerKey)
}
class VulnerabilitySubscriptions(tag: Tag) extends Table[VulnerabilitySubscription](tag, "vulnerability_subscription"){
val user = new LoginInfoColumns("subscriber", this)
def project = column[String]("project")
def * = (user(), project) <> (VulnerabilitySubscription.tupled, VulnerabilitySubscription.unapply)
def idx = index("all", (user(), project), unique = true)
}