mas/mas-cli/Error.swift
2016-04-14 09:21:25 -07:00

50 lines
No EOL
1.1 KiB
Swift

//
// 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
case PurchaseError
case NoDownloads
case Cancelled
case DownloadFailed
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? {
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
}