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))
}
}
}