amplify-swift/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Environment/UserPoolEnvironment.swift

48 lines
1.6 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
protocol UserPoolEnvironment: Environment {
typealias CognitoUserPoolFactory = () throws -> CognitoUserPoolBehavior
typealias CognitoUserPoolASFFactory = () -> AdvancedSecurityBehavior
typealias CognitoUserPoolAnalyticsHandlerFactory = () -> UserPoolAnalyticsBehavior
var userPoolConfiguration: UserPoolConfigurationData { get }
var cognitoUserPoolFactory: CognitoUserPoolFactory { get }
var cognitoUserPoolASFFactory: CognitoUserPoolASFFactory { get }
var cognitoUserPoolAnalyticsHandlerFactory: CognitoUserPoolAnalyticsHandlerFactory { get }
}
struct BasicUserPoolEnvironment: UserPoolEnvironment {
let userPoolConfiguration: UserPoolConfigurationData
let cognitoUserPoolFactory: CognitoUserPoolFactory
let cognitoUserPoolASFFactory: CognitoUserPoolASFFactory
let cognitoUserPoolAnalyticsHandlerFactory: CognitoUserPoolAnalyticsHandlerFactory
}
extension AuthEnvironment: UserPoolEnvironment {
var userPoolConfiguration: UserPoolConfigurationData {
userPoolEnvironment.userPoolConfiguration
}
var cognitoUserPoolFactory: CognitoUserPoolFactory {
userPoolEnvironment.cognitoUserPoolFactory
}
var cognitoUserPoolASFFactory: CognitoUserPoolASFFactory {
userPoolEnvironment.cognitoUserPoolASFFactory
}
var cognitoUserPoolAnalyticsHandlerFactory: CognitoUserPoolAnalyticsHandlerFactory {
userPoolEnvironment.cognitoUserPoolAnalyticsHandlerFactory
}
}