in mobile-save-for-later/src/main/scala/com/gu/sfl/lambda/LambdaApiGateway.scala [111:130]
override def execute(inputStream: InputStream, outputStream: OutputStream): Unit = {
try {
val response: Future[ApiGatewayLambdaResponse] = objectReadAndClose(inputStream) match {
case Left(apiLambdaGatewayRequest) =>
function(LambdaRequest(apiLambdaGatewayRequest)).map { res =>
logger.debug(s"ApiGateway lamda response: ${res}")
ApiGatewayLambdaResponse(res)
}
case Right(_) =>
logger.debug("Lambda returned error")
Future.successful(ApiGatewayLambdaResponse(StatusCodes.internalServerError))
}
val result = Await.result(response, Duration.Inf)
mapper.writeValue(outputStream, result)
}
finally {
outputStream.close()
}
}