@@ -34,7 +34,7 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
3434
3535 /// Unknown: Represents an unmapped remote error. Capisce?
3636 ///
37- case unknown( code: String , message: String ? )
37+ case unknown( code: String , message: String ? , data : [ String : AnyDecodable ] ? )
3838
3939 /// Stats error cases - API documentation of possible errors:
4040 /// https://developer.wordpress.com/docs/api/1.1/get/sites/%24site/stats/
@@ -55,6 +55,7 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
5555 let container = try decoder. container ( keyedBy: CodingKeys . self)
5656 let error = try container. decode ( String . self, forKey: . error)
5757 let message = try container. decodeIfPresent ( String . self, forKey: . message)
58+ let data = try container. decodeIfPresent ( [ String : AnyDecodable ] . self, forKey: . data)
5859
5960 switch error {
6061 case Constants . invalidToken:
@@ -75,11 +76,10 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
7576 Constants . invalidBlog where message == ErrorMessages . jetpackNotConnected:
7677 self = . jetpackNotConnected
7778 default :
78- self = . unknown( code: error, message: message)
79+ self = . unknown( code: error, message: message, data : data )
7980 }
8081 }
8182
82-
8383 /// Constants for Possible Error Identifiers
8484 ///
8585 private enum Constants {
@@ -97,6 +97,7 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
9797 private enum CodingKeys : String , CodingKey {
9898 case error
9999 case message
100+ case data
100101 }
101102
102103 /// Possible Error Messages
@@ -134,7 +135,7 @@ extension DotcomError: CustomStringConvertible {
134135 return NSLocalizedString ( " Dotcom Resource does not exist " , comment: " WordPress.com error thrown when a requested resource does not exist remotely. " )
135136 case . jetpackNotConnected:
136137 return NSLocalizedString ( " Jetpack Not Connected " , comment: " WordPress.com error thrown when Jetpack is not connected. " )
137- case . unknown( let code, let message) :
138+ case . unknown( let code, let message, _ ) :
138139 let theMessage = message ?? String ( )
139140 let messageFormat = NSLocalizedString (
140141 " Dotcom Error: [%1$@] %2$@ " ,
@@ -157,7 +158,7 @@ public func ==(lhs: DotcomError, rhs: DotcomError) -> Bool {
157158 ( . statsModuleDisabled, . statsModuleDisabled) ,
158159 ( . jetpackNotConnected, . jetpackNotConnected) :
159160 return true
160- case let ( . unknown( codeLHS, _) , . unknown( codeRHS, _) ) :
161+ case let ( . unknown( codeLHS, _, _ ) , . unknown( codeRHS, _ , _) ) :
161162 return codeLHS == codeRHS
162163 default :
163164 return false
0 commit comments