From e83dc297df858edc3f9803728f9c2e76212e7ff0 Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Fri, 1 Feb 2019 09:27:44 +0100 Subject: [PATCH] Fix retry --- utils/graph-client/utils.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/utils/graph-client/utils.js b/utils/graph-client/utils.js index 1683989..3f21c02 100644 --- a/utils/graph-client/utils.js +++ b/utils/graph-client/utils.js @@ -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) + }); }); } }