forked from apollographql/apollo-ios
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSplitNetworkTransport.swift
More file actions
19 lines (16 loc) · 919 Bytes
/
SplitNetworkTransport.swift
File metadata and controls
19 lines (16 loc) · 919 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Apollo
public class SplitNetworkTransport: NetworkTransport {
private let httpNetworkTransport: NetworkTransport
private let webSocketNetworkTransport: NetworkTransport
public init(httpNetworkTransport: NetworkTransport, webSocketNetworkTransport: NetworkTransport) {
self.httpNetworkTransport = httpNetworkTransport
self.webSocketNetworkTransport = webSocketNetworkTransport
}
public func send<Operation>(operation: Operation, fetchOptions: FetchOptions, completionHandler: @escaping (GraphQLResponse<Operation>?, Error?) -> Void) -> Cancellable {
if operation.operationType == .subscription {
return webSocketNetworkTransport.send(operation: operation, fetchOptions: fetchOptions, completionHandler: completionHandler)
} else {
return httpNetworkTransport.send(operation: operation, fetchOptions: fetchOptions, completionHandler: completionHandler)
}
}
}