Skip to content

Commit

Permalink
Merge pull request #124 from PKLOT/use_swift_result
Browse files Browse the repository at this point in the history
Use `Result` in Swift standard library instead of  from a dependency.
  • Loading branch information
donnywdavis authored Jan 15, 2021
2 parents fd4b9c2 + 8181aac commit 07d3db5
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 14 deletions.
2 changes: 1 addition & 1 deletion Heimdallr.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ Pod::Spec.new do |spec|

spec.ios.deployment_target = '9.0'
spec.osx.deployment_target = '10.10'
spec.swift_version = '5.0'

spec.default_subspec = 'Core'

spec.subspec 'Core' do |subspec|
subspec.dependency 'Result', '~> 4.1.0'
subspec.framework = 'Foundation'

subspec.source_files = 'Heimdallr/*.swift'
Expand Down
18 changes: 8 additions & 10 deletions Heimdallr/Heimdallr.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Foundation
import Result

public let HeimdallrErrorDomain = "HeimdallrErrorDomain"

Expand Down Expand Up @@ -210,15 +209,14 @@ public let HeimdallrErrorNotAuthorized = 2
if let expiration = accessToken.expiresAt, expiration < Date() {
if let refreshToken = accessToken.refreshToken {
requestAccessToken(grant: .refreshToken(refreshToken)) { result in
completion(result.analysis(ifSuccess: { accessToken in
let authenticatedRequest = self.authenticateRequest(request, accessToken: accessToken)
return .success(authenticatedRequest)
}, ifFailure: { error in
if [HeimdallrErrorDomain, OAuthErrorDomain].contains(error.domain) {
self.clearAccessToken()
}
return .failure(error)
}))
completion(result.map { accessToken in
self.authenticateRequest(request, accessToken: accessToken)
}.mapError { error in
if [HeimdallrErrorDomain, OAuthErrorDomain].contains(error.domain) {
self.clearAccessToken()
}
return error
})
self.releaseRequestQueue()
}
} else {
Expand Down
1 change: 0 additions & 1 deletion Heimdallr/OAuthAccessToken.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Foundation
import Result

/// An access token is used for authorizing requests to the resource endpoint.
@objc
Expand Down
1 change: 0 additions & 1 deletion Heimdallr/OAuthAccessTokenDefaultParser.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Foundation
import Result

@objc public class OAuthAccessTokenDefaultParser: NSObject, OAuthAccessTokenParser {
public func parse(data: Data) throws -> OAuthAccessToken {
Expand Down
1 change: 0 additions & 1 deletion Heimdallr/OAuthAccessTokenParser.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Foundation
import Result

/// An access token parser that can be used by Heimdallr.
@objc public protocol OAuthAccessTokenParser {
Expand Down

0 comments on commit 07d3db5

Please sign in to comment.