2015-08-21 21:02:36 +08:00
|
|
|
//
|
|
|
|
// Downloader.swift
|
|
|
|
// mas-cli
|
|
|
|
//
|
|
|
|
// Created by Andrew Naylor on 21/08/2015.
|
|
|
|
// Copyright (c) 2015 Andrew Naylor. All rights reserved.
|
|
|
|
//
|
|
|
|
|
2015-08-25 02:45:54 +08:00
|
|
|
func download(adamId: UInt64) -> MASError? {
|
2015-08-21 21:02:36 +08:00
|
|
|
|
2015-08-25 02:45:54 +08:00
|
|
|
if let account = ISStoreAccount.primaryAccount {
|
|
|
|
let group = dispatch_group_create()
|
|
|
|
let purchase = SSPurchase(adamId: adamId, account: account)
|
|
|
|
|
|
|
|
var purchaseError: MASError?
|
|
|
|
|
|
|
|
purchase.perform { purchase, completed, error, response in
|
|
|
|
if completed {
|
|
|
|
let observer = PurchaseDownloadObserver(purchase: purchase)
|
|
|
|
observer.onCompletion {
|
|
|
|
dispatch_group_leave(group)
|
|
|
|
}
|
|
|
|
|
|
|
|
CKDownloadQueue.sharedDownloadQueue().addObserver(observer)
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
purchaseError = MASError(code: .PurchaseError, sourceError: error)
|
|
|
|
dispatch_group_leave(group)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dispatch_group_enter(group)
|
|
|
|
dispatch_group_wait(group, DISPATCH_TIME_FOREVER)
|
|
|
|
return purchaseError
|
2015-08-21 21:02:36 +08:00
|
|
|
}
|
2015-08-25 02:45:54 +08:00
|
|
|
else {
|
|
|
|
return MASError(code: .NotSignedIn)
|
|
|
|
}
|
|
|
|
}
|