                         if let tdsToken = self.createThreeDSecureToken(response: response) {
                             completion?(Result.failure(.requiredThreeDSecure(tdsToken)))
                         } else {
-                            // TODO: tdsIdがない場合はエラーにする？
                             completion?(Result.failure(.invalidResponse(response)))
                         }
                     } else {

    ) -> URLSessionDataTask?
}

class Client: ClientType {

    static let shared = Client()

    private let jsonDecoder: JSONDecoder

    private init(
        session: URLSession = URLSession(configuration: .default,
                                         delegate: InterceptRedirectDelegate.shared,
                                         delegateQueue: nil),
        callbackQueue: CallbackQueue = CallbackQueue.dispatch(
        DispatchQueue(label: "jp.pay.ios", attributes: .concurrent)),
        jsonDecoder: JSONDecoder = JSONDecoder.shared
