Skip to content

Commit d54113b

Browse files
blockvotemduesterhoeft
authored andcommitted
Use base64 encoding for Protobuf Handler (#10)
1 parent d7d2d77 commit d54113b

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

router-protobuf/src/main/kotlin/io/moia/router/proto/ProtoEnabledRequestHandler.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package io.moia.router.proto
22

3+
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent
4+
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent
5+
import com.google.common.net.MediaType
36
import io.moia.router.JsonDeserializationHandler
47
import io.moia.router.JsonSerializationHandler
58
import io.moia.router.RequestHandler
9+
import io.moia.router.ResponseEntity
610

711
abstract class ProtoEnabledRequestHandler : RequestHandler() {
812

@@ -11,4 +15,12 @@ abstract class ProtoEnabledRequestHandler : RequestHandler() {
1115

1216
override fun deserializationHandlers() =
1317
listOf(ProtoDeserializationHandler(), JsonDeserializationHandler(objectMapper))
18+
19+
override fun <T> createResponse(
20+
contentType: MediaType?,
21+
input: APIGatewayProxyRequestEvent,
22+
response: ResponseEntity<T>
23+
): APIGatewayProxyResponseEvent {
24+
return super.createResponse(contentType, input, response).withIsBase64Encoded(true)
25+
}
1426
}

router-protobuf/src/test/kotlin/io/moia/router/proto/RequestHandlerTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.moia.router.proto
22

33
import assertk.assert
44
import assertk.assertions.isEqualTo
5+
import assertk.assertions.isTrue
56
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent
67
import io.moia.router.Request
78
import io.moia.router.ResponseEntity
@@ -66,6 +67,7 @@ class RequestHandlerTest {
6667

6768
assert(response.statusCode).isEqualTo(200)
6869
assert(Sample.parseFrom(response.bodyAsBytes())).isEqualTo(request)
70+
assert(response.isBase64Encoded).isTrue()
6971
}
7072

7173
@Test
@@ -83,7 +85,7 @@ class RequestHandlerTest {
8385
}
8486

8587
@Test
86-
fun `should return api error in prots`() {
88+
fun `should return api error in protos`() {
8789

8890
val response = testRequestHandler.handleRequest(
8991
GET("/some-error")

0 commit comments

Comments
 (0)