diff --git a/Sources/YData/Core/Error/FabricError.swift b/Sources/YData/Core/Error/FabricError.swift index c39a10a..1bdb847 100644 --- a/Sources/YData/Core/Error/FabricError.swift +++ b/Sources/YData/Core/Error/FabricError.swift @@ -1,9 +1,9 @@ import Foundation -public protocol FabricError: Error, Codable { +public protocol FabricError: Error, Codable, Equatable { var context: [String: String]? { get } var description: String { get } - var httpCode: Int? { get } + var httpCode: Int { get } var name: String { get } var returnValue: Int { get } } @@ -11,3 +11,13 @@ public protocol FabricError: Error, Codable { public extension FabricError { var name: String { "\(Self.self)" } } + +public extension FabricError { + static func == (lhs: Self, rhs: Self) -> Bool { + lhs.context == rhs.context + && lhs.description == rhs.description + && lhs.httpCode == rhs.httpCode + && lhs.name == rhs.name + && lhs.returnValue == rhs.returnValue + } +} diff --git a/Sources/YData/Core/Error/GenericFabricError.swift b/Sources/YData/Core/Error/GenericFabricError.swift index 976b3cc..4acf8b7 100644 --- a/Sources/YData/Core/Error/GenericFabricError.swift +++ b/Sources/YData/Core/Error/GenericFabricError.swift @@ -1,10 +1,10 @@ import Foundation -public class GenericFabricError: FabricError { +public struct GenericFabricError: FabricError { public var context: [String: String]? public var description: String - public var httpCode: Int? - var _name: String? // swiftlint:disable:this identifier_name + public var httpCode: Int = 500 + internal var _name: String? // swiftlint:disable:this identifier_name public var returnValue: Int public var name: String { @@ -17,16 +17,18 @@ public class GenericFabricError: FabricError { } } - init( + public init( context: [String: String]? = nil, description: String, - httpCode: Int? = nil, + httpCode: Int? = 500, name: String? = nil, returnValue: Int ) { self.context = context self.description = description - self.httpCode = httpCode + if let httpCode { + self.httpCode = httpCode + } self._name = name self.returnValue = returnValue }