// // Copyright Amazon.com Inc. or its affiliates. // All Rights Reserved. // // SPDX-License-Identifier: Apache-2.0 // import Foundation @testable import Amplify extension AuthSignUpResult: Equatable { public static func == (lhs: AuthSignUpResult, rhs: AuthSignUpResult) -> Bool { lhs.nextStep == rhs.nextStep } } extension AuthSignUpResult: Codable { enum CodingKeys: String, CodingKey { case nextStep } public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) let nextStep = try values.decode(AuthSignUpStep.self, forKey: .nextStep) self.init(nextStep) } public func encode(to encoder: Encoder) throws { fatalError("Not Supported") } } extension AuthSignUpStep: Equatable { public static func == (lhs: AuthSignUpStep, rhs: AuthSignUpStep) -> Bool { switch (lhs, rhs) { case (.confirmUser, .confirmUser), (.done, .done): return true default: return false } } } extension AuthSignUpStep: Codable { enum CodingKeys: String, CodingKey { case signUpStep case codeDeliveryDetails case additionalInfo } public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) if try values.decode(String.self, forKey: .signUpStep) == "DONE" { self = .done } else if try values.decode(String.self, forKey: .signUpStep) == "CONFIRM_SIGN_UP_STEP" { let codeDeliveryDetails = try values.decode( AuthCodeDeliveryDetails.self, forKey: .codeDeliveryDetails) let additionalInfo = try values.decode( AdditionalInfo.self, forKey: .additionalInfo) self = .confirmUser( codeDeliveryDetails, additionalInfo, nil) } else { fatalError("next step type not supported") } } public func encode(to encoder: Encoder) throws { fatalError("Not Supported") } }