diff --git a/router-protobuf/src/main/kotlin/io/moia/router/proto/ProtoEnabledRequestHandler.kt b/router-protobuf/src/main/kotlin/io/moia/router/proto/ProtoEnabledRequestHandler.kt index 756e35f5..8f1a3483 100644 --- a/router-protobuf/src/main/kotlin/io/moia/router/proto/ProtoEnabledRequestHandler.kt +++ b/router-protobuf/src/main/kotlin/io/moia/router/proto/ProtoEnabledRequestHandler.kt @@ -1,8 +1,12 @@ package io.moia.router.proto +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent +import com.google.common.net.MediaType import io.moia.router.JsonDeserializationHandler import io.moia.router.JsonSerializationHandler import io.moia.router.RequestHandler +import io.moia.router.ResponseEntity abstract class ProtoEnabledRequestHandler : RequestHandler() { @@ -11,4 +15,12 @@ abstract class ProtoEnabledRequestHandler : RequestHandler() { override fun deserializationHandlers() = listOf(ProtoDeserializationHandler(), JsonDeserializationHandler(objectMapper)) + + override fun createResponse( + contentType: MediaType?, + input: APIGatewayProxyRequestEvent, + response: ResponseEntity + ): APIGatewayProxyResponseEvent { + return super.createResponse(contentType, input, response).withIsBase64Encoded(true) + } } \ No newline at end of file diff --git a/router-protobuf/src/test/kotlin/io/moia/router/proto/RequestHandlerTest.kt b/router-protobuf/src/test/kotlin/io/moia/router/proto/RequestHandlerTest.kt index 4c0dcfd5..9615e693 100644 --- a/router-protobuf/src/test/kotlin/io/moia/router/proto/RequestHandlerTest.kt +++ b/router-protobuf/src/test/kotlin/io/moia/router/proto/RequestHandlerTest.kt @@ -2,6 +2,7 @@ package io.moia.router.proto import assertk.assert import assertk.assertions.isEqualTo +import assertk.assertions.isTrue import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent import io.moia.router.Request import io.moia.router.ResponseEntity @@ -66,6 +67,7 @@ class RequestHandlerTest { assert(response.statusCode).isEqualTo(200) assert(Sample.parseFrom(response.bodyAsBytes())).isEqualTo(request) + assert(response.isBase64Encoded).isTrue() } @Test @@ -83,7 +85,7 @@ class RequestHandlerTest { } @Test - fun `should return api error in prots`() { + fun `should return api error in protos`() { val response = testRequestHandler.handleRequest( GET("/some-error")