BaseClient
@objc(VSSBaseClient)
open class BaseClient : NSObject
Base class for clients
-
Base URL for a service
Declaration
Swift
@objc public let serviceUrl: URL -
HttpConnectionProtocol implementation to use for queries
Declaration
Swift
public let connection: HttpConnectionProtocol -
Error domain for Error instances thrown from service
Declaration
Swift
@objc open class var serviceErrorDomain: String { get } -
Access token provider
Declaration
Swift
@objc public let accessTokenProvider: AccessTokenProvider -
Initializes new
BaseClientinstanceDeclaration
Swift
public init(accessTokenProvider: AccessTokenProvider, serviceUrl: URL, connection: HttpConnectionProtocol = HttpConnection())Parameters
accessTokenProviderAccess token provider
serviceUrlservice url
connectionHttp Conntection
-
Sends request and performs retries if needed
Throws
- Rethrows from
AccessTokenProvider - Rethrows from
HttpConnection
Declaration
Swift
public func sendWithRetry(_ request: ServiceRequest, retry: RetryProtocol, tokenContext: TokenContext) throws -> GenericOperation<Response>Parameters
requestrequest to send
retryRetry
tokenContexttoken context to forward to Access Token Provider
Return Value
Response
- Rethrows from
-
Handles error
Declaration
Swift
public func handleError(statusCode: Int, body: Data?) -> ErrorParameters
statusCodehttp status code
bodyresponse body
Return Value
- ServiceError if service responded with correct error json
- NSError with http response string in the description, if present
- NSError without description in case of empty response
-
Validated response and throws error if needed
Throws
See BaseClient.handleErrorDeclaration
Swift
public func validateResponse(_ response: Response) throwsParameters
responseresponse
-
Processes response and returns needed Decodable type
Throws
- BaseClientError.noBody if body was not found in the response
- Rethrows from
JSONDecoder
Declaration
Swift
public func processResponse<T>(_ response: Response) throws -> T where T : DecodableParameters
responseresponse
Return Value
Decoded object of type T
BaseClient Class Reference