@@ -2,10 +2,9 @@ package org.mdedetrich.stripe.v1
22
33import akka .http .scaladsl .model .HttpResponse
44import cats .instances .either ._
5- import cats .syntax .cartesian ._
65import cats .syntax .either ._
7- import defaults ._
86import enumeratum ._
7+ import io .circe .Decoder .Result
98import io .circe ._
109
1110object Errors {
@@ -113,34 +112,38 @@ object Errors {
113112 extends Error (429 , `type`, code, message, param)
114113 }
115114
116- private def errorDecoder (c : HCursor ) =
117- c.downField(" type" ).as[Type ] |@|
118- c.downField(" code" ).as[Option [Code ]] |@|
119- c.downField(" message" ).as[Option [String ]] |@|
120- c.downField(" param" ).as[Option [String ]].map {
121- case Some (s) if s.isEmpty => None
122- case s => s
123- }
115+ private def errorDecoder (
116+ c : HCursor ): (Result [Type ], Result [Option [Code ]], Result [Option [String ]], Result [Option [String ]]) =
117+ (c.downField(" type" ).as[Type ],
118+ c.downField(" code" ).as[Option [Code ]],
119+ c.downField(" message" ).as[Option [String ]],
120+ c.downField(" param" ).as[Option [String ]].map {
121+ case Some (s) if s.isEmpty => None
122+ case s => s
123+ })
124+
125+ import cats .syntax .apply ._
126+ import cats .instances .either ._
124127
125128 implicit val badRequestDecoder : Decoder [Error .BadRequest ] =
126129 Decoder .instance[Error .BadRequest ] { c =>
127- errorDecoder(c).map (Error .BadRequest .apply)
130+ errorDecoder(c).mapN (Error .BadRequest .apply)
128131 }
129132 implicit val unauthorizedDecoder : Decoder [Error .Unauthorized ] =
130133 Decoder .instance[Error .Unauthorized ] { c =>
131- errorDecoder(c).map (Error .Unauthorized .apply)
134+ errorDecoder(c).mapN (Error .Unauthorized .apply)
132135 }
133136 implicit val requestFailedDecoder : Decoder [Error .RequestFailed ] =
134137 Decoder .instance[Error .RequestFailed ] { c =>
135- errorDecoder(c).map (Error .RequestFailed .apply)
138+ errorDecoder(c).mapN (Error .RequestFailed .apply)
136139 }
137140 implicit val notFoundDecoder : Decoder [Error .NotFound ] =
138141 Decoder .instance[Error .NotFound ] { c =>
139- errorDecoder(c).map (Error .NotFound .apply)
142+ errorDecoder(c).mapN (Error .NotFound .apply)
140143 }
141144 implicit val tooManyRequestsDecoder : Decoder [Error .TooManyRequests ] =
142145 Decoder .instance[Error .TooManyRequests ] { c =>
143- errorDecoder(c).map (Error .TooManyRequests .apply)
146+ errorDecoder(c).mapN (Error .TooManyRequests .apply)
144147 }
145148
146149 private def errorEncoder : Encoder [Error ] =
0 commit comments