mas/mas-cli/Error.swift

50 lines
1.1 KiB
Swift
Raw Normal View History

//
// Error.swift
// mas-cli
//
// Created by Andrew Naylor on 21/08/2015.
// Copyright (c) 2015 Andrew Naylor. All rights reserved.
//
public let MASErrorDomain: String = "MASErrorDomain"
private let MASErrorSource: String = "MASErrorSource"
public enum MASErrorCode: Int {
case NoError
case NotSignedIn
2015-08-24 18:45:54 +00:00
case PurchaseError
case NoDownloads
case Cancelled
case DownloadFailed
2016-02-14 01:22:33 +00:00
case SignInError
case AlreadySignedIn
case SearchError
case NoSearchResultsFound
var exitCode: Int32 {
return Int32(self.rawValue)
}
}
public class MASError: NSError {
var masCode: MASErrorCode? {
return MASErrorCode(rawValue: code)
}
var sourceError: NSError? {
2015-09-14 08:51:09 +00:00
return userInfo[MASErrorSource] as? NSError
}
convenience init(code: MASErrorCode, sourceError: NSError? = nil) {
var userInfo: [NSObject: AnyObject] = [:]
if let error = sourceError {
userInfo[MASErrorSource] = error
}
self.init(domain: MASErrorDomain, code: code.rawValue, userInfo: userInfo)
}
}
public func == (lhs: MASError, rhs: MASError) -> Bool {
return false
}