@@ -7,30 +7,30 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
77
88 /// Non explicit reason
99 ///
10- case empty
10+ case empty( data : [ String : AnyDecodable ] ? = nil )
1111
1212 /// Missing Token!
1313 ///
14- case unauthorized
14+ case unauthorized( data : [ String : AnyDecodable ] ? = nil )
1515
1616 /// We're not properly authenticated
1717 ///
18- case invalidToken
18+ case invalidToken( data : [ String : AnyDecodable ] ? = nil )
1919
2020 /// Remote Request Failed
2121 ///
22- case requestFailed
22+ case requestFailed( data : [ String : AnyDecodable ] ? = nil )
2323
2424 /// No route was found matching the URL and request method
2525 ///
26- case noRestRoute
26+ case noRestRoute( data : [ String : AnyDecodable ] ? = nil )
2727
2828 /// Jetpack is not connected
2929 ///
3030 /// This can be caused by an `unknown_token` error from Jetpack
3131 /// or an `invalid_blog` error from WordPress.com Stats.
3232 ///
33- case jetpackNotConnected
33+ case jetpackNotConnected( data : [ String : AnyDecodable ] ? = nil )
3434
3535 /// Unknown: Represents an unmapped remote error. Capisce?
3636 ///
@@ -41,13 +41,13 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
4141 /// Note: when the cases get large, consider refactoring them into a separate error enum that conforms to a Dotcom error protocol
4242
4343 /// No permission to view site stats
44- case noStatsPermission
44+ case noStatsPermission( data : [ String : AnyDecodable ] ? = nil )
4545
4646 /// Jetpack site stats module disabled
47- case statsModuleDisabled
47+ case statsModuleDisabled( data : [ String : AnyDecodable ] ? = nil )
4848
4949 /// The requested resourced does not exist remotely
50- case resourceDoesNotExist
50+ case resourceDoesNotExist( data : [ String : AnyDecodable ] ? = nil )
5151
5252 /// Decodable Initializer.
5353 ///
@@ -59,22 +59,22 @@ public enum DotcomError: Error, Decodable, Equatable, GeneratedFakeable {
5959
6060 switch error {
6161 case Constants . invalidToken:
62- self = . invalidToken
62+ self = . invalidToken( data : data )
6363 case Constants . requestFailed:
64- self = . requestFailed
64+ self = . requestFailed( data : data )
6565 case Constants . unauthorized where message == ErrorMessages . noStatsPermission:
66- self = . noStatsPermission
66+ self = . noStatsPermission( data : data )
6767 case Constants . unauthorized:
68- self = . unauthorized
68+ self = . unauthorized( data : data )
6969 case Constants . noRestRoute:
70- self = . noRestRoute
70+ self = . noRestRoute( data : data )
7171 case Constants . invalidBlog where message == ErrorMessages . statsModuleDisabled:
72- self = . statsModuleDisabled
72+ self = . statsModuleDisabled( data : data )
7373 case Constants . restTermInvalid where message == ErrorMessages . resourceDoesNotExist:
74- self = . resourceDoesNotExist
74+ self = . resourceDoesNotExist( data : data )
7575 case Constants . unknownToken,
7676 Constants . invalidBlog where message == ErrorMessages . jetpackNotConnected:
77- self = . jetpackNotConnected
77+ self = . jetpackNotConnected( data : data )
7878 default :
7979 self = . unknown( code: error, message: message, data: data)
8080 }
@@ -151,12 +151,15 @@ extension DotcomError: CustomStringConvertible {
151151//
152152public func == ( lhs: DotcomError , rhs: DotcomError ) -> Bool {
153153 switch ( lhs, rhs) {
154- case ( . requestFailed , . requestFailed ) ,
154+ case ( . empty , . empty ) ,
155155 ( . unauthorized, . unauthorized) ,
156+ ( . invalidToken, . invalidToken) ,
157+ ( . requestFailed, . requestFailed) ,
156158 ( . noRestRoute, . noRestRoute) ,
159+ ( . jetpackNotConnected, . jetpackNotConnected) ,
157160 ( . noStatsPermission, . noStatsPermission) ,
158161 ( . statsModuleDisabled, . statsModuleDisabled) ,
159- ( . jetpackNotConnected , . jetpackNotConnected ) :
162+ ( . resourceDoesNotExist , . resourceDoesNotExist ) :
160163 return true
161164 case let ( . unknown( codeLHS, _, _) , . unknown( codeRHS, _, _) ) :
162165 return codeLHS == codeRHS
0 commit comments