Giter VIP home page Giter VIP logo

Comments (5)

calvincestari avatar calvincestari commented on May 25, 2024 1

Sure thing @avielg. I've got a PR up at apollographql/apollo-ios-dev#336 to add that, thanks for the suggestion.

from apollo-ios.

calvincestari avatar calvincestari commented on May 25, 2024

Hi @avielg - when you receive an error like that it should be considered a terminal error re. the request so no you won't be able to continue from where the error was generated. You'd have to restart the request again.

from apollo-ios.

github-actions avatar github-actions commented on May 25, 2024

Do you have any feedback for the maintainers? Please tell us by taking a one-minute survey. Your responses will help us understand Apollo iOS usage and allow us to serve you better.

from apollo-ios.

avielg avatar avielg commented on May 25, 2024

@calvincestari Yeap I think my confusion was due to thinking that the error interceptor is an array like the regular interceptors - thinking that there might be other error interceptor that should also "get their turn" to do something with the error, but since there can only be one - I just need to pass the request to the original caller by calling the completion and passing .failure(error) - which wasn't initially clear to me.

I wonder if it makes sense to have a small example showing this in the docs? Specifically where there are examples to the regular interceptors (https://www.apollographql.com/docs/ios/networking/request-pipeline/#example-interceptors), and the error interceptor is mentioned there, but without an example on usage?

Something like this perhaps?

class LoggerErrorInterceptor: ApolloErrorInterceptor {
    weak var errorLogger: MyErrorLogger?

    init(errorLogger: MyErrorLogger) {
        self.errorLogger = errorLogger
    }

    func handleErrorAsync<Operation: GraphQLOperation>(
        error: Error,
        chain: RequestChain,
        request: Apollo.HTTPRequest<Operation>,
        response: Apollo.HTTPResponse<Operation>?,
        completion: @escaping (Result<GraphQLResult<Operation.Data>, Error>) -> Void
    ) {
        errorLogger?.requestFailed(response?.httpResponse, withError: error)
        completion(.failure(error))
    }
}

from apollo-ios.

avielg avatar avielg commented on May 25, 2024

Amazing thanks!

from apollo-ios.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.