Skip to content
This repository has been archived by the owner on Apr 25, 2021. It is now read-only.
/ Silver Public archive

A simply wrapper around some CloudKit API's. This repository is no longer maintained.

Notifications You must be signed in to change notification settings

nashysolutions/Silver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This repository is no longer maintained

Every CloudKit has a silver lining.

Usage

CurrentUser.account { [weak self] (result) in
    switch result {
    case .success(let status):
        DispatchQueue.main.async { self?.handle(success: status) }
    case .failure(let error):
        DispatchQueue.main.async { self?.handle(error: error) }
    }
}

func handle(success status: AccountStatus) {
    switch status {
    case .available:
    case .couldNotDetermine(let message):
    case .noAccount(let message):
    case .restricted(let message):
    }
}

func handle(error: CloudError?) {
    guard let error = error else {
        unexpected(unexpectedErrorMessage)
        return
    }
    switch error {
    case .incompatibleVersion(let message):
    case .networkFailure(let message, let seconds): // delay before retry
    case .notAuthenticated(let message):
    case .operationCancelled(let message):
    case .requestRateLimited(let message, let seconds):  // delay before retry
    case .serverResponseLost(let message):
    case .serviceUnavailable(let message, let seconds):
    default:
        unexpected(unexpectedErrorMessage)
    }
}

CurrentUser.discoverability { (result) in
    switch result {
    case .success(let status):
        DispatchQueue.main.async { self.handle(success: status) }
    case .failure(let error):
        DispatchQueue.main.async { self.handle(error: error) }
    }
}

func handle(success status: ApplicationPermissionStatus) {
    switch status {
    case .granted:
    case .couldNotComplete(let message):
    case .denied(let message):
    }
}

private func handle(error: CloudError?) {
    guard let error = error else {
        unexpected(unexpectedErrorMessage)
        return
    }
    switch error {
    case .incompatibleVersion(let message):
    case .networkFailure(let message, let seconds): // delay before retry
    case .operationCancelled(let message):
    case .requestRateLimited(let message, let seconds): // delay before retry
    case .serverResponseLost(let message):
    case .serviceUnavailable(let message, let seconds): // delay before retry
    default:
        unexpected(unexpectedErrorMessage)
    }
}

Installation

List this in your Package.swift manifest file as a Swift Package dependency. Releases Page.

About

A simply wrapper around some CloudKit API's. This repository is no longer maintained.

Topics

Resources

Stars

Watchers

Forks

Languages