@@ -264,25 +264,22 @@ public function decode(Http\Response $response, array $okCodes = NULL)
264
264
/** @var $content \stdClass */
265
265
switch ($ code ) {
266
266
case Http \Response::S400_BAD_REQUEST :
267
- throw new BadRequestException ($ content-> message , $ code , NULL , $ response );
267
+ throw new BadRequestException (self :: errorMessage ( $ content) , $ code , NULL , $ response );
268
268
269
269
case Http \Response::S401_UNAUTHORIZED :
270
- throw new UnauthorizedException ($ content-> message , $ code , NULL , $ response );
270
+ throw new UnauthorizedException (self :: errorMessage ( $ content) , $ code , NULL , $ response );
271
271
272
272
case Http \Response::S403_FORBIDDEN :
273
273
if ($ response ->getHeader ('X-RateLimit-Remaining ' ) === '0 ' ) {
274
- throw new RateLimitExceedException ($ content-> message , $ code , NULL , $ response );
274
+ throw new RateLimitExceedException (self :: errorMessage ( $ content) , $ code , NULL , $ response );
275
275
}
276
- throw new ForbiddenException ($ content-> message , $ code , NULL , $ response );
276
+ throw new ForbiddenException (self :: errorMessage ( $ content) , $ code , NULL , $ response );
277
277
278
278
case Http \Response::S404_NOT_FOUND :
279
279
throw new NotFoundException ('Resource not found or not authorized to access. ' , $ code , NULL , $ response );
280
280
281
281
case Http \Response::S422_UNPROCESSABLE_ENTITY :
282
- $ message = $ content ->message . implode (', ' , array_map (function ($ error ) {
283
- return '[ ' . implode (': ' , (array ) $ error ) . '] ' ;
284
- }, $ content ->errors ));
285
- throw new UnprocessableEntityException ($ message , $ code , NULL , $ response );
282
+ throw new UnprocessableEntityException (self ::errorMessage ($ content ), $ code , NULL , $ response );
286
283
}
287
284
288
285
$ message = $ okCodes === NULL ? '< 300 ' : implode (' or ' , $ okCodes );
@@ -546,4 +543,24 @@ private function walk(array $array, $cb)
546
543
}
547
544
}
548
545
546
+
547
+ /**
548
+ * @param \stdClass
549
+ * @return string
550
+ */
551
+ private static function errorMessage ($ content )
552
+ {
553
+ $ message = isset ($ content ->message )
554
+ ? $ content ->message
555
+ : 'Unknown error ' ;
556
+
557
+ if (isset ($ content ->errors )) {
558
+ $ message .= implode (', ' , array_map (function ($ error ) {
559
+ return '[ ' . implode (': ' , (array ) $ error ) . '] ' ;
560
+ }, $ content ->errors ));
561
+ }
562
+
563
+ return $ message ;
564
+ }
565
+
549
566
}
0 commit comments