All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.touk.nussknacker.ui.process.label.ScenarioLabelsService.scala Maven / Gradle / Ivy

There is a newer version: 1.18.1
Show newest version
package pl.touk.nussknacker.ui.process.label

import cats.data.ValidatedNel
import pl.touk.nussknacker.ui.process.repository.{DBIOActionRunner, ScenarioLabelsRepository}
import pl.touk.nussknacker.ui.security.api.LoggedUser
import pl.touk.nussknacker.ui.validation.ScenarioLabelsValidator

import scala.concurrent.{ExecutionContext, Future}

class ScenarioLabelsService(
    scenarioLabelsRepository: ScenarioLabelsRepository,
    scenarioLabelsValidator: ScenarioLabelsValidator,
    dbioRunner: DBIOActionRunner
)(
    implicit ec: ExecutionContext
) {

  def readLabels(loggedUser: LoggedUser): Future[List[String]] = {
    dbioRunner
      .run(scenarioLabelsRepository.getLabels(loggedUser))
      .map {
        _.map(_.value).sorted
      }
  }

  def validatedScenarioLabels(labels: List[String]): ValidatedNel[ScenarioLabelsValidator.ValidationError, Unit] =
    scenarioLabelsValidator.validate(labels.map(ScenarioLabel.apply))

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy