amplify-swift/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Actions/Federation/InitializeFederationToIdent...

51 lines
1.6 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
struct InitializeFederationToIdentityPool: Action {
var identifier: String = "InitializeFederationToIdentityPool"
let federatedToken: FederatedToken
let developerProvidedIdentityId: IdentityID?
func execute(withDispatcher dispatcher: EventDispatcher, environment: Environment) async {
logVerbose("\(#fileID) Starting execution", environment: environment)
let authProviderLoginsMap = AuthProviderLoginsMap(federatedToken: federatedToken)
let event: FetchAuthSessionEvent
if let developerProvidedIdentityId = developerProvidedIdentityId {
event = FetchAuthSessionEvent.init(
eventType: .fetchAWSCredentials(
developerProvidedIdentityId,
authProviderLoginsMap))
} else {
event = FetchAuthSessionEvent.init(
eventType: .fetchAuthenticatedIdentityID(authProviderLoginsMap))
}
logVerbose("\(#fileID) Sending event \(event.type)", environment: environment)
await dispatcher.send(event)
}
}
extension InitializeFederationToIdentityPool: CustomDebugDictionaryConvertible {
var debugDictionary: [String: Any] {
[
"identifier": identifier,
"federatedToken": federatedToken.debugDictionary
]
}
}
extension InitializeFederationToIdentityPool: CustomDebugStringConvertible {
var debugDescription: String {
debugDictionary.debugDescription
}
}