72 lines
2.0 KiB
Swift
72 lines
2.0 KiB
Swift
//
|
|
// Copyright Amazon.com Inc. or its affiliates.
|
|
// All Rights Reserved.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
import Foundation
|
|
import AWSPluginsCore
|
|
|
|
enum CredentialStoreData: Codable, Equatable {
|
|
case amplifyCredentials(AmplifyCredentials)
|
|
case deviceMetadata(DeviceMetadata, Username)
|
|
case asfDeviceId(String, Username)
|
|
}
|
|
|
|
enum CredentialStoreDataType: Codable, Equatable {
|
|
case amplifyCredentials
|
|
case deviceMetadata(username: String)
|
|
case asfDeviceId(username: String)
|
|
}
|
|
|
|
struct CredentialStoreEvent: StateMachineEvent {
|
|
|
|
enum EventType: Equatable {
|
|
|
|
case migrateLegacyCredentialStore
|
|
|
|
case loadCredentialStore(CredentialStoreDataType)
|
|
|
|
case storeCredentials(CredentialStoreData)
|
|
|
|
case clearCredentialStore(CredentialStoreDataType)
|
|
|
|
case completedOperation(CredentialStoreData)
|
|
|
|
case credentialCleared(CredentialStoreDataType)
|
|
|
|
case throwError(KeychainStoreError)
|
|
|
|
case moveToIdleState
|
|
|
|
}
|
|
|
|
let id: String
|
|
let eventType: EventType
|
|
let time: Date?
|
|
|
|
var type: String {
|
|
switch eventType {
|
|
case .migrateLegacyCredentialStore: return "CredentialStoreEvent.migrateLegacyCredentialStore"
|
|
case .loadCredentialStore: return "CredentialStoreEvent.loadCredentialStore"
|
|
case .storeCredentials: return "CredentialStoreEvent.saveCredentials"
|
|
case .credentialCleared: return "CredentialStoreEvent.credentialCleared"
|
|
case .clearCredentialStore: return "CredentialStoreEvent.clearCredentialStore"
|
|
case .completedOperation: return "CredentialStoreEvent.completedOperation"
|
|
case .throwError: return "CredentialStoreEvent.throwError"
|
|
case .moveToIdleState: return "CredentialStoreEvent.moveToIdleState"
|
|
}
|
|
}
|
|
|
|
init(
|
|
id: String = UUID().uuidString,
|
|
eventType: EventType,
|
|
time: Date? = nil
|
|
) {
|
|
self.id = id
|
|
self.eventType = eventType
|
|
self.time = time
|
|
}
|
|
}
|