Skip to content

Commit 4865b68

Browse files
committed
Follow the new itterface
1 parent aac738b commit 4865b68

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

GitHub-GraphQL-API-Example-iOS/API.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ public final class SearchRepositoriesQuery: GraphQLQuery {
2626

2727
public let operationName: String = "SearchRepositories"
2828

29-
public var queryDocument: String { return operationDefinition.appending("\n" + RepositoryDetails.fragmentDefinition) }
29+
public var queryDocument: String {
30+
var document: String = operationDefinition
31+
document.append("\n" + RepositoryDetails.fragmentDefinition)
32+
return document
33+
}
3034

3135
public var query: String
3236
public var count: Int

GitHub-GraphQL-API-Example-iOS/RepositoriesViewController.swift

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,25 @@ import Apollo
33

44
private let token = "YOUR_TOKEN"
55

6+
class TokenAddingInterceptor: ApolloInterceptor {
7+
func interceptAsync<Operation: GraphQLOperation>(
8+
chain: RequestChain,
9+
request: HTTPRequest<Operation>,
10+
response: HTTPResponse<Operation>?,
11+
completion: @escaping (Result<GraphQLResult<Operation.Data>, Error>) -> Void) {
12+
request.addHeader(name: "Authorization", value: "Bearer \(token)")
13+
chain.proceedAsync(request: request, response: response, completion: completion)
14+
}
15+
}
16+
17+
class NetworkInterceptorProvider: LegacyInterceptorProvider {
18+
override func interceptors<Operation: GraphQLOperation>(for operation: Operation) -> [ApolloInterceptor] {
19+
var interceptors = super.interceptors(for: operation)
20+
interceptors.insert(TokenAddingInterceptor(), at: 0)
21+
return interceptors
22+
}
23+
}
24+
625
final class RepositoriesViewController: UITableViewController {
726
private var repositories: [SearchRepositoriesQuery.Data.Search.Edge.Node.AsRepository]? {
827
didSet {
@@ -11,14 +30,16 @@ final class RepositoriesViewController: UITableViewController {
1130
}
1231

1332
private lazy var apollo: ApolloClient = {
14-
let network = RequestChainNetworkTransport(
15-
interceptorProvider: LegacyInterceptorProvider(),
16-
endpointURL: URL(string: "https://api.github.com/graphql")!,
17-
additionalHeaders: [
18-
"Authorization": "Bearer \(token)"
19-
]
33+
let client = URLSessionClient()
34+
let cache = InMemoryNormalizedCache()
35+
let store = ApolloStore(cache: cache)
36+
let provider = NetworkInterceptorProvider(client: client, store: store)
37+
let url = URL(string: "https://api.github.com/graphql")!
38+
let transport = RequestChainNetworkTransport(
39+
interceptorProvider: provider,
40+
endpointURL: url
2041
)
21-
return .init(networkTransport: network)
42+
return .init(networkTransport: transport, store: store)
2243
}()
2344

2445
override func viewWillAppear(_ animated: Bool) {

0 commit comments

Comments
 (0)