
com.apollographql.apollo.internal.fetcher.NetworkOnlyFetcher Maven / Gradle / Ivy
/**
* Copyright 2018-2019 Amazon.com,
* Inc. or its affiliates. All Rights Reserved.
*
* SPDX-License-Identifier: Apache-2.0
*/
package com.apollographql.apollo.internal.fetcher;
import com.apollographql.apollo.fetcher.ResponseFetcher;
import com.apollographql.apollo.interceptor.ApolloInterceptor;
import com.apollographql.apollo.interceptor.ApolloInterceptorChain;
import com.apollographql.apollo.internal.ApolloLogger;
import java.util.concurrent.Executor;
import javax.annotation.Nonnull;
/**
* Signals the apollo client to only fetch the GraphQL data from the network. If network request fails, an
* exception is thrown.
*/
public final class NetworkOnlyFetcher implements ResponseFetcher {
@Override public ApolloInterceptor provideInterceptor(ApolloLogger apolloLogger) {
return new NetworkOnlyInterceptor();
}
private static final class NetworkOnlyInterceptor implements ApolloInterceptor {
@Override
public void interceptAsync(@Nonnull InterceptorRequest request, @Nonnull ApolloInterceptorChain chain,
@Nonnull Executor dispatcher, @Nonnull CallBack callBack) {
InterceptorRequest networkRequest = request.toBuilder().fetchFromCache(false).build();
chain.proceedAsync(networkRequest, dispatcher, callBack);
}
@Override public void dispose() {
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy