Digital PCT265 story PCT-135: Code review comments, cleanups and isEquals expansion.
This commit is contained in:
parent
20d4d323e0
commit
009bb01e1b
@ -25,4 +25,12 @@ public struct ActionBackModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return model.actionType == actionType
|
||||||
|
&& model.extraParameters == extraParameters
|
||||||
|
&& model.analyticsData == analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,4 +28,11 @@ public struct ActionCallModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
&& callNumber == model.callNumber
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,4 +25,12 @@ public struct ActionCancelModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return model.actionType == actionType
|
||||||
|
&& model.extraParameters == extraParameters
|
||||||
|
&& model.analyticsData == analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,4 +42,14 @@ public struct ActionContactModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
&& phoneNumber == model.phoneNumber
|
||||||
|
&& firstName == model.firstName
|
||||||
|
&& lastName == model.lastName
|
||||||
|
&& approach == model.approach
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
public struct ActionNoopModel: ActionModelProtocol {
|
public struct ActionNoopModel: ActionModelProtocol {
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -24,4 +25,12 @@ public struct ActionNoopModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return model.actionType == actionType
|
||||||
|
&& model.extraParameters == extraParameters
|
||||||
|
&& model.analyticsData == analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,4 +30,13 @@ public struct ActionOpenSMSModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return model.extraParameters == extraParameters
|
||||||
|
&& model.analyticsData == analyticsData
|
||||||
|
&& model.phoneNumber == phoneNumber
|
||||||
|
&& model.message == message
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,4 +60,13 @@ open class ActionOpenUrlModel: ActionModelProtocol {
|
|||||||
try container.encodeIfPresent(extraParameters, forKey: .extraParameters)
|
try container.encodeIfPresent(extraParameters, forKey: .extraParameters)
|
||||||
try container.encodeIfPresent(analyticsData, forKey: .analyticsData)
|
try container.encodeIfPresent(analyticsData, forKey: .analyticsData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
&& browserUrl == model.browserUrl
|
||||||
|
&& appURL == model.appURL
|
||||||
|
&& appURLOptions == model.appURLOptions
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,4 +25,12 @@ public struct ActionPreviousSubmitModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return model.actionType == actionType
|
||||||
|
&& model.extraParameters == extraParameters
|
||||||
|
&& model.analyticsData == analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,4 +32,11 @@ public struct ActionRestartModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
&& requestURL == model.requestURL
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,4 +25,10 @@ public struct ActionSettingModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
// Copyright © 2020 myverizon. All rights reserved.
|
// Copyright © 2020 myverizon. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
public struct ActionShareItemModel: Codable {
|
public struct ActionShareItemModel: Codable, Equatable {
|
||||||
|
|
||||||
public enum SharedType: String, Codable {
|
public enum SharedType: String, Codable {
|
||||||
case text
|
case text
|
||||||
@ -14,14 +14,14 @@ public struct ActionShareItemModel: Codable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public var type: SharedType
|
public var type: SharedType
|
||||||
public var value: Any
|
public var value: AnyHashable // Common Equatable type between String and URL.
|
||||||
|
|
||||||
private enum CodingKeys: String, CodingKey {
|
private enum CodingKeys: String, CodingKey {
|
||||||
case type
|
case type
|
||||||
case value
|
case value
|
||||||
}
|
}
|
||||||
|
|
||||||
public init(type: SharedType, value: Any) {
|
public init(type: SharedType, value: AnyHashable) {
|
||||||
self.type = type
|
self.type = type
|
||||||
self.value = value
|
self.value = value
|
||||||
}
|
}
|
||||||
@ -47,6 +47,11 @@ public struct ActionShareItemModel: Codable {
|
|||||||
try container.encode(value as! URL, forKey: .value)
|
try container.encode(value as! URL, forKey: .value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static func == (lhs: ActionShareItemModel, rhs: ActionShareItemModel) -> Bool {
|
||||||
|
return lhs.type == rhs.type
|
||||||
|
&& lhs.value == rhs.value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct ActionShareModel: ActionModelProtocol {
|
public struct ActionShareModel: ActionModelProtocol {
|
||||||
@ -101,7 +106,7 @@ public struct ActionShareModel: ActionModelProtocol {
|
|||||||
private init(deprecatedFrom decoder: Decoder) throws {
|
private init(deprecatedFrom decoder: Decoder) throws {
|
||||||
let typeContainer = try decoder.container(keyedBy: DeprecatedCodingKeys.self)
|
let typeContainer = try decoder.container(keyedBy: DeprecatedCodingKeys.self)
|
||||||
let type = try typeContainer.decode(ActionShareItemModel.SharedType.self, forKey: .sharedType)
|
let type = try typeContainer.decode(ActionShareItemModel.SharedType.self, forKey: .sharedType)
|
||||||
var value: Any
|
var value: AnyHashable
|
||||||
switch type {
|
switch type {
|
||||||
case .url:
|
case .url:
|
||||||
value = try typeContainer.decode(URL.self, forKey: .sharedText)
|
value = try typeContainer.decode(URL.self, forKey: .sharedText)
|
||||||
@ -116,4 +121,11 @@ public struct ActionShareModel: ActionModelProtocol {
|
|||||||
try container.encode(actionType, forKey: .actionType)
|
try container.encode(actionType, forKey: .actionType)
|
||||||
try container.encode(items, forKey: .items)
|
try container.encode(items, forKey: .items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
&& items == model.items
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,8 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// A model for UIApplication.OpenExternalURLOptionsKey
|
/// A model for UIApplication.OpenExternalURLOptionsKey
|
||||||
open class OpenUrlOptionsModel: Codable {
|
open class OpenUrlOptionsModel: Codable, Equatable {
|
||||||
|
|
||||||
public var options: [UIApplication.OpenExternalURLOptionsKey: Any]
|
public var options: [UIApplication.OpenExternalURLOptionsKey: Any]
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -42,4 +43,16 @@ open class OpenUrlOptionsModel: Codable {
|
|||||||
try container.encode(universalLinksValue, forKey: .universalLinksOnly)
|
try container.encode(universalLinksValue, forKey: .universalLinksOnly)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static func == (lhs: OpenUrlOptionsModel, rhs: OpenUrlOptionsModel) -> Bool {
|
||||||
|
return lhs.options.allSatisfy { pair in
|
||||||
|
switch(pair.key) {
|
||||||
|
case .universalLinksOnly:
|
||||||
|
return rhs.options[pair.key] as? Bool == pair.value as? Bool
|
||||||
|
default:
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,7 +38,7 @@ public extension ActionModelProtocol {
|
|||||||
return actionType
|
return actionType
|
||||||
}
|
}
|
||||||
|
|
||||||
func isEqual(to model: any ModelProtocol) -> Bool {
|
func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
guard let model = model as? Self else { return false }
|
guard let model = model as? Self else { return false }
|
||||||
return model.actionType == actionType
|
return model.actionType == actionType
|
||||||
&& model.extraParameters == extraParameters
|
&& model.extraParameters == extraParameters
|
||||||
|
|||||||
@ -29,4 +29,11 @@ public class ActionRunJavaScriptModel: ActionModelProtocol {
|
|||||||
self.extraParameters = extraParameters
|
self.extraParameters = extraParameters
|
||||||
self.analyticsData = analyticsData
|
self.analyticsData = analyticsData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func isEqual(to model: any ModelComparisonProtocol) -> Bool {
|
||||||
|
guard let model = model as? Self else { return false }
|
||||||
|
return jsCallback == model.jsCallback
|
||||||
|
&& extraParameters == model.extraParameters
|
||||||
|
&& analyticsData == model.analyticsData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user