Skip to content

Commit 2d043b2

Browse files
committed
Add request preprocessor function
1 parent 974a1a2 commit 2d043b2

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/main/kotlin/com/github/mduesterhoeft/router/RequestHandler.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ abstract class RequestHandler : RequestHandler<APIGatewayProxyRequestEvent, APIG
2727
log.info("match result for route '$routerFunction' is '$matchResult'")
2828
if (matchResult.match) {
2929
val handler: HandlerFunction<Any, Any> = routerFunction.handler
30-
val request = deserializeRequest(handler, input)
31-
val response = handler(Request(input, request))
30+
val requestBody = deserializeRequest(handler, input)
31+
val request = Request(input, requestBody)
32+
router.requestPreprocessor(request)
33+
val response = handler(request)
3234
return createResponse(input, response)
3335
}
3436

src/main/kotlin/com/github/mduesterhoeft/router/Router.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class Router {
99
var defaultConsuming = setOf("application/json", "application/x-protobuf")
1010
var defaultProducing = setOf("application/json", "application/x-protobuf")
1111

12+
var requestPreprocessor: (Request<*>) -> Unit = { _ -> Unit }
13+
1214
fun <I, T> GET(pattern: String, handlerFunction: HandlerFunction<I, T>) =
1315
RequestPredicate(
1416
method = "GET",
@@ -63,6 +65,8 @@ class Router {
6365
// the default content types the HandlerFunctions of this router can handle
6466
fun defaultConsuming(contentTypes: Set<String>): Router = this.also { defaultConsuming = contentTypes }
6567

68+
fun withPreprocessor(preprocessorFunction: (Request<*>) -> Unit): Router = this.also { requestPreprocessor = preprocessorFunction }
69+
6670
companion object {
6771
fun router(routes: Router.() -> Unit) = Router().apply(routes)
6872
}
File renamed without changes.

0 commit comments

Comments
 (0)