1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
<?php
namespace OpenCloud\Common\Http\Message;
use Guzzle\Http\Message\Response;
use OpenCloud\Common\Constants\Header;
use OpenCloud\Common\Constants\Mime;
use OpenCloud\Common\Exceptions\JsonError;
class Formatter
{
public static function decode(Response $response)
{
if (strpos($response->getHeader(Header::CONTENT_TYPE), Mime::JSON) !== false) {
$string = (string) $response->getBody();
$response = json_decode($string);
self::checkJsonError($string);
return $response;
}
}
public static function encode($body)
{
return json_encode($body);
}
public static function checkJsonError($string = null)
{
if (json_last_error()) {
$error = sprintf('%s', json_last_error_msg());
$message = ($string) ? sprintf('%s trying to decode: %s', $error, $string) : $error;
throw new JsonError($message);
}
}
}