Adrian Witaszak
05/10/2024, 4:36 PMDynamoDbEvent
with AwsLambdaEventFunction
? Here is what I've got currently simplified:
class DynamoDbLambdaAdapter : AwsLambdaEventFunction(FnLoader { env: Env ->
FnHandler { event: DynamoDbEvent, _: Context ->
event
}
})
This code won't work because it does not match the AWS request, as the Http4k one uses Values4k.
I do have a working version of the AwsLambdaEventFunction, but it uses AWS models. Eliminating the AWS dependency would be nice, as I use Http4k in it anyway.dave
05/10/2024, 4:44 PMdave
05/10/2024, 4:45 PMdave
05/10/2024, 4:46 PMAdrian Witaszak
05/10/2024, 4:47 PMDynamodbEvent
Adrian Witaszak
05/10/2024, 4:47 PMdave
05/10/2024, 4:48 PMAdrian Witaszak
05/10/2024, 4:48 PMAdrian Witaszak
05/10/2024, 4:49 PMdave
05/10/2024, 4:50 PMAdrian Witaszak
05/10/2024, 4:51 PMdave
05/10/2024, 4:51 PMAdrian Witaszak
05/10/2024, 4:52 PMclass DynamoAdapterTest {
private val mockContext = mockk<Context>()
private val logger = TestLogger
private val json = AwsLambdaMoshi
private fun sut(returns: Either<UseCaseError, Unit>) =
object : DynamoDbLambdaAdapter2({ returns }) {}
@Test
fun `valid request returns empty batch response`() {
val input = ByteArrayInputStream(validDynamoDBEventStream.toByteArray())
val output = ByteArrayOutputStream()
sut(Unit.right()).handleRequest(input, output, mockContext)
val response = json.asA<StreamsEventResponse>(output.toString())
response shouldBe emptyBatchResponse
}
}
dave
05/10/2024, 4:53 PMdave
05/10/2024, 4:53 PMfun EventFnLoader(http: HttpHandler) = FnLoader(DynamoDbMoshi) { env: Map<String, String> ->
loggingFunction.then(EventFnHandler(http))
}
dave
05/10/2024, 4:54 PMAdrian Witaszak
05/10/2024, 5:00 PMdave
05/10/2024, 5:00 PMAdrian Witaszak
05/10/2024, 5:01 PMAdrian Witaszak
05/10/2024, 5:07 PMAdrian Witaszak
05/10/2024, 5:07 PMAdrian Witaszak
05/10/2024, 5:09 PMorg.http4k.connect.amazon.dynamodb.events
dave
05/10/2024, 5:13 PMAdrian Witaszak
05/10/2024, 6:44 PM