in src/main/scala/PurgerLambda.scala [89:115]
private def JsonBody(collectionKeys: List[String]): RequestBody =
RequestBody.create(
Map("surrogate_keys" -> collectionKeys).asJson.noSpaces,
MediaType.get("application/json; charset=utf-8")
)
/**
* Send a soft purge request to Fastly API.
*/
private def sendPurgeRequest(collectionKeys: List[String], purgerConfig: Config): Boolean = {
val url = s"https://api.fastly.com/service/${purgerConfig.fastlyServiceId}/purge"
val request = new Request.Builder()
.url(url)
.header("Fastly-Key", purgerConfig.fastlyApiKey)
.header("Fastly-Soft-Purge", "1")
.post(JsonBody(collectionKeys))
.build()
val response = httpClient.newCall(request).execute()
response.code() match {
case 200 => logger.info(s"Sent purge request for ${collectionKeys}. Response from Fastly API: [${response.code}] [${response.body.string}]")
case _ => logger.warn(s"An error occurred. Response from Fastly API: [${response.code}] [${response.body.string}]")
}
response.code == 200
}