RecordCallback.kt

  1. package com.hexagontk.rest.tools

  2. import com.hexagontk.http.handlers.HttpContext
  3. import com.hexagontk.http.model.HttpCall

  4. /**
  5.  * Callback that records server requests and responses (the whole event context). The result is
  6.  * taken before any subsequent filter is applied (just how it was received).
  7.  */
  8. class RecordCallback : (HttpContext) -> HttpContext {

  9.     var calls: List<HttpContext> = emptyList()

  10.     override fun invoke(context: HttpContext): HttpContext {

  11.         val result = context.next()
  12.         calls += context
  13.             .with(event = HttpCall(result.event.request, response = result.response)) as HttpContext

  14.         return result
  15.     }
  16. }