Tusker/TuskerUITests/API Mocks/DelegatingResponse.swift

30 lines
773 B
Swift

//
// DelegatingResponse.swift
// TuskerUITests
//
// Created by Shadowfacts on 12/31/19.
// Copyright © 2019 Shadowfacts. All rights reserved.
//
import Foundation
import Ambassador
struct DelegatingResponse: WebApp {
let handler: (_ ctx: Context) -> WebApp
func app(_ environ: [String : Any], startResponse: @escaping ((String, [(String, String)]) -> Void), sendBody: @escaping ((Data) -> Void)) {
let ctx = Context(environ: environ)
handler(ctx).app(environ, startResponse: startResponse, sendBody: sendBody)
}
}
extension DelegatingResponse {
struct Context {
let environ: [String: Any]
var captures: [String] {
environ["ambassador.router_captures"] as? [String] ?? []
}
}
}