diff --git a/server/api/src/main/scala/com/prisma/api/server/ApiServer.scala b/server/api/src/main/scala/com/prisma/api/server/ApiServer.scala index a5ef4d40ea..73b8cdac1d 100644 --- a/server/api/src/main/scala/com/prisma/api/server/ApiServer.scala +++ b/server/api/src/main/scala/com/prisma/api/server/ApiServer.scala @@ -100,31 +100,36 @@ case class ApiServer( } def unthrottledCall(projectId: ProjectId, rawRequest: RawRequest) = { - val result = apiDependencies.requestHandler.handleRawRequestForPublicApi(projectId.asString, rawRequest) + val result = handleRequestForPublicApi(projectId, rawRequest) complete(result) } def throttledCall(projectId: ProjectId, rawRequest: RawRequest, throttler: Throttler[ProjectId]) = { val result = throttler.throttled(projectId) { () => - apiDependencies.requestHandler.handleRawRequestForPublicApi(projectId.asString, rawRequest) + handleRequestForPublicApi(projectId, rawRequest) } onComplete(result) { case scala.util.Success(result) => - logRequestEnd(projectId.asString) respondWithHeader(RawHeader("Throttled-By", result.throttledBy.toString + "ms")) { complete(result.result) } case scala.util.Failure(_: ThrottleBufferFullException) => - logRequestEnd(projectId.asString) throw ThrottlerBufferFullException() case scala.util.Failure(exception) => // just propagate the exception - logRequestEnd(projectId.asString) throw exception } } + def handleRequestForPublicApi(projectId: ProjectId, rawRequest: RawRequest) = { + val result = apiDependencies.requestHandler.handleRawRequestForPublicApi(projectId.asString, rawRequest) + result.onComplete { _ => + logRequestEnd(projectId.asString) + } + result + } + logger.info(Json.toJson(LogData(LogKey.RequestNew, requestId)).toString()) pathPrefix(Segments(min = 2, max = 4)) { segments => post {