private def initiateReindex()

in app/com/gu/floodgate/reindex/ReindexService.scala [60:85]


  private def initiateReindex(
      contentSource: ContentSource,
      dateParameters: DateParameters
  )(implicit ec: ExecutionContext): Future[Either[CustomError, RunningJob]] = {
    val reindexUrl: String = contentSource.reindexEndpointWithDateParams(dateParameters)
    val headers = contentSource
      .headers
      .getOrElse(Map.empty)
      .toList

    logger.info(s"Requesting reindex from url: ${reindexUrl}")
    ws.url(reindexUrl).withHttpHeaders(headers: _*).post("").flatMap { response =>
      response.status match {
        case 200 | 201 =>
          val runningJob = RunningJob(contentSource.id, contentSource.environment, dateParameters)
          reindexProgressMonitor ! LaunchTracker(contentSource, runningJob)
          runningJobService.createRunningJob(runningJob)
          Future.successful(Right(runningJob))

        case _ =>
          val error: CustomError =
            ReindexCannotBeInitiated(s"Could not initiate a reindex for ${contentSource.appName}.")
          Future.successful(Left(error))
      }
    }
  }