override def handleRequest()

in src/main/scala/com/gu/contentapi/Lambda.scala [17:45]


  override def handleRequest(event: JMap[String, Object], context: Context): Unit = {
    val config = new Config(context)

    val capi = new ContentApi(config.capiUrl, config.capiKey)

    def upload(mostViewedVideoContainers: Either[CustomError, List[MostViewedVideoContainer]]): Unit = {
      val result = mostViewedVideoContainers map { containers =>
        val pubResults = containers map (publish(_, config))
        pubResults.flatMap(_.swap.toOption)
      }

      println(result.fold(
        { ophanError => ophanError.toString },
        { kinesisErrors => kinesisErrors.mkString("\n") }))
    }

    val editionIds = Await.result(capi.getResponse(capi.editions).map(_.results.map(_.id)), 5.seconds)

    editionIds foreach { editionId =>

      upload(getMostViewedVideoBySection(Some(editionId), config))

      upload(getMostViewedVideoOverall(Some(editionId), config))
    }

    upload(getMostViewedVideoBySection(None, config))

    upload(getMostViewedVideoOverall(None, config))
  }