Sources/OSS/Internal/ResponseCheckerMiddleware.swift (21 lines of code) (raw):
import Foundation
class ResponseCheckerMiddleware: ExecuteMiddleware {
let nextHandler: ExecuteMiddleware
let logger: LogAgent?
init(nextHandler: ExecuteMiddleware,
logger: LogAgent? = nil)
{
self.nextHandler = nextHandler
self.logger = logger
}
public func execute(request: RequestMessage, context: ExecuteContext) async throws -> ResponseMessage {
let response = try await nextHandler.execute(request: request, context: context)
if let handlers = context.responseHandlers {
for handler in handlers {
logger?.debug("Should call handler: \(handler)")
try handler.onResponse(request: request, response: response)
}
}
return response
}
}