Skip to content

Commit

Permalink
MLIBZ-2343: adding Options for Client (#264)
Browse files Browse the repository at this point in the history
* MLIBZ-2343: adding Options for Client

* adding options to Client constructor

* deprecating Client.timeoutInterval
  • Loading branch information
heyzooi committed Feb 9, 2018
1 parent 3526fc3 commit 108a4e8
Showing 1 changed file with 36 additions and 3 deletions.
39 changes: 36 additions & 3 deletions Kinvey/Kinvey/Client.swift
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ open class Client: Credential {
open var cachePolicy: NSURLRequest.CachePolicy = .useProtocolCachePolicy

/// Timeout interval for this client instance.
@available(*, deprecated: 3.12.2, message: "Please use `options` instead")
open var timeoutInterval: TimeInterval = 60

/**
Expand Down Expand Up @@ -142,9 +143,27 @@ open class Client: Credential {
}

/// Constructor that already initialize the client. The `initialize` method is called automatically.
public convenience init(appKey: String, appSecret: String, accessGroup: String? = nil, apiHostName: URL = Client.defaultApiHostName, authHostName: URL = Client.defaultAuthHostName) {
public convenience init<U: User>(
appKey: String,
appSecret: String,
accessGroup: String? = nil,
apiHostName: URL = Client.defaultApiHostName,
authHostName: URL = Client.defaultAuthHostName,
schema: Schema? = nil,
options: Options? = nil,
completionHandler: ((Result<U?, Swift.Error>) -> Void)? = nil
) {
self.init()
initialize(appKey: appKey, appSecret: appSecret, accessGroup: accessGroup, apiHostName: apiHostName, authHostName: authHostName) { activerUser, error in
initialize(
appKey: appKey,
appSecret: appSecret,
accessGroup: accessGroup,
apiHostName: apiHostName,
authHostName: authHostName,
schema: schema,
options: options
) { (result: Result<U?, Swift.Error>) in
completionHandler?(result)
}
}

Expand Down Expand Up @@ -238,10 +257,24 @@ open class Client: Credential {
}

/// Initialize a `Client` instance with all the needed parameters.
open func initialize<U: User>(appKey: String, appSecret: String, accessGroup: String? = nil, apiHostName: URL = Client.defaultApiHostName, authHostName: URL = Client.defaultAuthHostName, encryptionKey: Data? = nil, schema: Schema? = nil, completionHandler: @escaping (Result<U?, Swift.Error>) -> Void) {
open func initialize<U: User>(
appKey: String,
appSecret: String,
accessGroup: String? = nil,
apiHostName: URL = Client.defaultApiHostName,
authHostName: URL = Client.defaultAuthHostName,
encryptionKey: Data? = nil,
schema: Schema? = nil,
options: Options? = nil,
completionHandler: @escaping (Result<U?, Swift.Error>) -> Void
) {
validateInitialize(appKey: appKey, appSecret: appSecret)
self.encryptionKey = encryptionKey
self.schemaVersion = schema?.version ?? 0
self.options = options
if let timeout = options?.timeout {
self.timeoutInterval = timeout
}

Migration.performMigration(persistenceId: appKey, encryptionKey: encryptionKey, schemaVersion: schemaVersion, migrationHandler: schema?.migrationHandler)

Expand Down

0 comments on commit 108a4e8

Please sign in to comment.