RetryableGraphQLOperationBehavior
public protocol RetryableGraphQLOperationBehavior : Operation, DefaultLogger
Abastraction for a retryable GraphQLOperation.
-
Declaration
Swift
associatedtype Payload : Decodable
-
GraphQLOperation concrete type
Declaration
Swift
associatedtype OperationType : AnyGraphQLOperation
-
RequestFactory
AsynchronousDeclaration
Swift
typealias RequestFactory = () async -> GraphQLRequest<Payload>
-
Declaration
Swift
typealias OperationFactory = (GraphQLRequest<Payload>, @escaping OperationResultListener) -> OperationType
-
Declaration
Swift
typealias OperationResultListener = OperationType.ResultListener
-
Operation unique identifier
Declaration
Swift
var id: UUID { get }
-
Number of attempts (min 1)
Declaration
Swift
var attempts: Int { get set }
-
Underlying GraphQL operation instantiated by
operationFactory
Declaration
Swift
var underlyingOperation: AtomicValue<OperationType?> { get set }
-
Maximum number of allowed retries
Declaration
Swift
var maxRetries: Int { get }
-
GraphQLRequest factory, invoked to create a new operation
Declaration
Swift
var requestFactory: RequestFactory { get }
-
GraphQL operation factory, invoked with a newly created GraphQL request and a wrapped result listener.
Declaration
Swift
var operationFactory: OperationFactory { get }
-
Declaration
Swift
var resultListener: OperationResultListener { get }
-
Declaration
Swift
init(requestFactory: @escaping RequestFactory, maxRetries: Int, resultListener: @escaping OperationResultListener, _ operationFactory: @escaping OperationFactory)
-
start(request:
Default implementation) Default Implementation
Declaration
Swift
func start(request: GraphQLRequest<Payload>)
-
Declaration
Swift
func shouldRetry(error: APIError?) -> Bool
-
log
Extension methodDeclaration
Swift
public static var log: Logger { get }
-
log
Extension methodDeclaration
Swift
public var log: Logger { get }