Skip to content

Instantly share code, notes, and snippets.

@m1entus
Created October 5, 2017 13:10
Show Gist options
  • Save m1entus/a6de37383c8c6ebc3bc8cb9052f3521a to your computer and use it in GitHub Desktop.
Save m1entus/a6de37383c8c6ebc3bc8cb9052f3521a to your computer and use it in GitHub Desktop.
class SocialServiceBrowserDropboxClient: SocialServiceBrowserClient {
var serviceName: String = "Dropbox"
var filter: SocialServiceBrowserFilterType = .none
private var client: DropboxClient? {
return DropboxClientsManager.authorizedClient
}
func requestRootNode(with completion: @escaping (SocialServiceBrowserResult<SocialServiceBrowerNodeListResponse, Error>) -> Void) -> SocialServiceBrowserOperationPerformable? {
return client?.files.listFolder(path: "").response(completionHandler: { [weak self] response, error in
if let error = error {
completion(SocialServiceBrowserResult.failure(NSError(domain: "SocialServiceBrowserDropboxClientDomain", code: -1, userInfo: [NSLocalizedDescriptionKey: error.description] as [String: Any])))
} else if let response = response {
response.filter = self?.filter
completion(SocialServiceBrowserResult.success(response))
} else {
fatalError()
}
}).request
}
func requestChildren(for node: SocialServiceBrowerNode, withCompletion completion: @escaping (SocialServiceBrowserResult<SocialServiceBrowerNodeListResponse, Error>) -> Void) -> SocialServiceBrowserOperationPerformable? {
return client?.files.listFolder(path: node.path!).response(completionHandler: { [weak self] response, error in
if let error = error {
completion(SocialServiceBrowserResult.failure(error))
} else if let response = response {
response.filter = self?.filter
completion(SocialServiceBrowserResult.success(response))
} else {
fatalError()
}
}).request
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment