RecordCallback.kt
package com.hexagontk.rest.tools
import com.hexagontk.http.handlers.HttpContext
import com.hexagontk.http.model.HttpCall
/**
* Callback that records server requests and responses (the whole event context). The result is
* taken before any subsequent filter is applied (just how it was received).
*/
class RecordCallback : (HttpContext) -> HttpContext {
var calls: List<HttpContext> = emptyList()
override fun invoke(context: HttpContext): HttpContext {
val result = context.next()
calls += context
.with(event = HttpCall(result.event.request, response = result.response)) as HttpContext
return result
}
}