Remove superfluous OAuthAuthorizationGranting protocol.

This commit is contained in:
Brent Simmons 2024-04-25 12:18:21 -07:00
parent a3a61989d7
commit 914c753cb2
4 changed files with 5 additions and 29 deletions

View File

@ -385,33 +385,16 @@ public enum FetchType {
}
}
public static func oauthAuthorizationCodeGrantRequest(for type: AccountType, secretsProvider: SecretsProvider) -> URLRequest {
let grantingType: OAuthAuthorizationGranting.Type
switch type {
case .feedly:
grantingType = FeedlyAccountDelegate.self
default:
fatalError("\(type) does not support OAuth authorization code granting.")
}
return grantingType.oauthAuthorizationCodeGrantRequest(secretsProvider: secretsProvider)
}
public static func requestOAuthAccessToken(with response: OAuthAuthorizationResponse,
client: OAuthAuthorizationClient,
accountType: AccountType,
transport: Transport = URLSession.webserviceTransport(),
secretsProvider: SecretsProvider) async throws -> OAuthAuthorizationGrant {
let grantingType: OAuthAuthorizationGranting.Type
switch accountType {
case .feedly:
grantingType = FeedlyAccountDelegate.self
default:
guard accountType == .feedly else {
fatalError("\(accountType) does not support OAuth authorization code granting.")
}
return try await grantingType.requestOAuthAccessToken(with: response, transport: transport, secretsProvider: secretsProvider)
return try await FeedlyAccountDelegate.requestOAuthAccessToken(with: response, transport: transport, secretsProvider: secretsProvider)
}
public func receiveRemoteNotification(userInfo: [AnyHashable: Any]) async {

View File

@ -24,7 +24,7 @@ public struct FeedlyOAuthAccessTokenResponse: Decodable, OAuthAccessTokenRespons
public var scope: String
}
extension FeedlyAccountDelegate: OAuthAuthorizationGranting {
extension FeedlyAccountDelegate {
private static let oauthAuthorizationGrantScope = "https://cloud.feedly.com/subscriptions"

View File

@ -56,7 +56,7 @@ public enum OAuthAccountAuthorizationOperationError: LocalizedError {
@MainActor public func run() {
assert(presentationAnchor != nil, "\(self) outlived presentation anchor.")
let request = Account.oauthAuthorizationCodeGrantRequest(for: accountType, secretsProvider: secretsProvider)
let request = FeedlyAccountDelegate.oauthAuthorizationCodeGrantRequest(secretsProvider: secretsProvider)
guard let url = request.url else {
return DispatchQueue.main.async {

View File

@ -165,10 +165,3 @@ public protocol OAuthAuthorizationCodeGrantRequesting {
/// - Returns: On success, the access token response appropriate for concrete type's service. On failure, throws possibly a `URLError` or `OAuthAuthorizationErrorResponse` value.
func requestAccessToken(_ authorizationRequest: OAuthAccessTokenRequest) async throws -> FeedlyOAuthAccessTokenResponse
}
protocol OAuthAuthorizationGranting: AccountDelegate {
@MainActor static func oauthAuthorizationCodeGrantRequest(secretsProvider: SecretsProvider) -> URLRequest
@MainActor static func requestOAuthAccessToken(with response: OAuthAuthorizationResponse, transport: Transport, secretsProvider: SecretsProvider) async throws -> OAuthAuthorizationGrant
}