def reindex()

in app/com/gu/floodgate/reindex/ReindexService.scala [23:46]


  def reindex(
      id: String,
      environment: String,
      dateParameters: DateParameters
  )(implicit ec: ExecutionContext): Future[Either[CustomError, RunningJob]] = {
    logger.info(s"Reindex requested for content source: $id")
    val contentSourceOrError = contentSourceService.getContentSource(id, environment)
    val isRunning = isReindexRunning(id, environment)

    if (isRunning) {
      Future.successful(
        Left(
          ReindexAlreadyRunning(
            "A reindex is already running for this content source. Please try again once it has completed."
          )
        )
      )
    } else {
      contentSourceOrError match {
        case Right(cs)   => initiateReindex(contentSource = cs, dateParameters)
        case Left(error) => Future.successful(Left(error))
      }
    }
  }