in src/main/scala/Handler.scala [36:89]
def handleRequest(
event: APIGatewayProxyRequestEvent,
context: Context
): APIGatewayProxyResponseEvent = {
logger.info(
"Received request with params: " + event
.getQueryStringParameters()
.toString()
)
val eventualResult = event
.getQueryStringParameters()
.asScala
.get("query")
.map(query =>
cql
.run(query)
.map(r =>
Try {
(200, r.asJson.spaces2)
}.recover { e =>
logger.error("Server error", e)
(500, e.getMessage())
}.get
)
.recover { e =>
logger.error("Bad request", e)
(400, e.getMessage())
}
)
.getOrElse(
Future.successful(
(
400,
"No query specified. Supply a URL parameter for `query`, e.g. ?query=example"
)
)
)
val (statusCode, responseBody) = Await.result(eventualResult, 5.seconds)
logger.info(s"Responding with status ${statusCode}: ${responseBody}")
new APIGatewayProxyResponseEvent()
.withHeaders(
Map(
"Access-Control-Allow-Origin" -> "*"
).asJava
)
.withStatusCode(statusCode)
.withBody(
responseBody
)
}