Fix retry

This commit is contained in:
2019-02-01 09:27:44 +01:00
parent 445091048b
commit e83dc297df
+15 -5
View File
@@ -1,4 +1,4 @@
import { execute, makePromise, ApolloLink } from 'apollo-link';
import { execute, makePromise, ApolloLink, Observable } from 'apollo-link';
import { HttpLink } from 'apollo-link-http';
import gql from 'graphql-tag';
const { includeCredentials } = require('./middleware');
@@ -22,10 +22,20 @@ const errorLink = onError(({ graphQLErrors, networkError, operation, forward })
}
if (networkError) {
if (networkError.statusCode === 401) {
webAuth.checkSession(() => {
return forward(operation);
}, (err) => {
console.log(err);
return new Observable(observer => {
webAuth.checkSession(() => {
const subscriber = {
next: observer.next.bind(observer),
error: observer.error.bind(observer),
complete: observer.complete.bind(observer)
};
// Retry last failed request
forward(operation).subscribe(subscriber);
}, (err) => {
console.log(err);
observer.error(err)
});
});
}
}