added iOS source code
[wl-app.git] / iOS / Pods / OAuthSwift / Sources / OAuthSwiftError.swift
diff --git a/iOS/Pods/OAuthSwift/Sources/OAuthSwiftError.swift b/iOS/Pods/OAuthSwift/Sources/OAuthSwiftError.swift
new file mode 100644 (file)
index 0000000..5e0ba25
--- /dev/null
@@ -0,0 +1,153 @@
+//
+//  OAuthSwiftError.swift
+//  OAuthSwift
+//
+//  Created by phimage on 02/10/16.
+//  Copyright © 2016 Dongri Jin. All rights reserved.
+//
+
+import Foundation
+
+// MARK: - OAuthSwift errors
+public enum OAuthSwiftError: Error {
+
+    /// Configuration problem with oauth provider.
+    case configurationError(message: String)
+    /// The provided token is expired, retrieve new token by using the refresh token
+    case tokenExpired(error: Error?)
+    /// State missing from request (you can set allowMissingStateCheck = true to ignore)
+    case missingState
+    /// Returned state value is wrong
+    case stateNotEqual(state: String, responseState: String)
+    /// Error from server
+    case serverError(message: String)
+    /// Failed to create URL \(urlString) not convertible to URL, please encode
+    case encodingError(urlString: String)
+    case authorizationPending
+    /// Failed to create request with \(urlString)
+    case requestCreation(message: String)
+    /// Authentification failed. No token
+    case missingToken
+    /// Please retain OAuthSwift object or handle
+    case retain
+    /// Request error
+    case requestError(error: Error, request: URLRequest)
+    /// Request cancelled
+    case cancelled
+
+    public static let Domain = "OAuthSwiftError"
+    public static let ResponseDataKey = "OAuthSwiftError.response.data"
+    public static let ResponseKey = "OAuthSwiftError.response"
+
+    fileprivate enum Code: Int {
+        case configurationError = -1
+        case tokenExpired = -2
+        case missingState = -3
+        case stateNotEqual = -4
+        case serverError = -5
+        case encodingError = -6
+        case authorizationPending = -7
+        case requestCreation = -8
+        case missingToken = -9
+        case retain = -10
+        case requestError = -11
+        case cancelled = -12
+    }
+
+    fileprivate var code: Code {
+        switch self {
+        case .configurationError: return Code.configurationError
+        case .tokenExpired: return Code.tokenExpired
+        case .missingState: return Code.missingState
+        case .stateNotEqual: return Code.stateNotEqual
+        case .serverError: return Code.serverError
+        case .encodingError: return Code.encodingError
+        case .authorizationPending: return Code.authorizationPending
+        case .requestCreation: return Code.requestCreation
+        case .missingToken: return Code.missingToken
+        case .retain: return Code.retain
+        case .requestError: return Code.requestError
+        case .cancelled : return Code.cancelled
+        }
+    }
+
+    public var underlyingError: Error? {
+        switch self {
+        case .tokenExpired(let e): return e
+        case .requestError(let e, _): return e
+        default: return nil
+        }
+    }
+
+    public var underlyingMessage: String? {
+        switch self {
+        case .serverError(let m): return m
+        case .configurationError(let m): return m
+        case .requestCreation(let m): return m
+        default: return nil
+        }
+    }
+
+}
+
+extension OAuthSwiftError: CustomStringConvertible {
+
+    public var description: String {
+        switch self {
+        case .configurationError(let m): return "configurationError[\(m)]"
+        case .tokenExpired(let e): return "tokenExpired[\(String(describing: e))]"
+        case .missingState: return "missingState"
+        case .stateNotEqual(let s, let e): return "stateNotEqual[\(s)<>\(e)]"
+        case .serverError(let m): return "serverError[\(m)]"
+        case .encodingError(let urlString): return "encodingError[\(urlString)]"
+        case .authorizationPending: return "authorizationPending"
+        case .requestCreation(let m): return "requestCreation[\(m)]"
+        case .missingToken: return "missingToken"
+        case .retain: return "retain"
+        case .requestError(let e, _): return "requestError[\(e)]"
+        case .cancelled : return "cancelled"
+        }
+    }
+}
+
+extension OAuthSwift {
+
+    static func retainError(_ failureHandler: FailureHandler?) {
+        #if !OAUTH_NO_RETAIN_ERROR
+            failureHandler?(OAuthSwiftError.retain)
+        #endif
+    }
+
+}
+
+// MARK: NSError
+extension OAuthSwiftError: CustomNSError {
+
+    public static var errorDomain: String { return OAuthSwiftError.Domain }
+
+    public var errorCode: Int { return self.code.rawValue }
+
+    /// The user-info dictionary.
+    public var errorUserInfo: [String: Any] {
+        switch self {
+        case .configurationError(let m): return ["message": m]
+        case .serverError(let m): return ["message": m]
+        case .requestCreation(let m): return ["message": m]
+
+        case .tokenExpired(let e): return ["error": e as Any]
+        case .requestError(let e, let request): return ["error": e, "request": request]
+
+        case .encodingError(let urlString): return ["url": urlString]
+
+        case .stateNotEqual(let s, let e): return ["state": s, "expected": e]
+        default: return [:]
+        }
+    }
+
+    public var _code: Int {
+        return self.code.rawValue
+    }
+    public var _domain: String {
+        return OAuthSwiftError.Domain
+    }
+}