| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | <?php/** * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license */namespace Temando\Shipping\Rest\Exception;use Temando\Shipping\Rest\Response\Document\Errors;use Temando\Shipping\Rest\Response\DataObject\Error;/** * Temando REST Adapter Exception – parsed Http Exception * * @package Temando\Shipping\Rest * @author  Christoph Aßmann <christoph.assmann@netresearch.de> * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @link    https://www.temando.com/ */class AdapterException extends RestException{    /**     * @param \Exception $cause     * @return static     */    public static function create(\Exception $cause)    {        $message = 'API connection failed';        return new static($message, $cause->getCode(), $cause);    }    /**     * @param Errors $errors     * @param \Exception|null $cause     * @return static     */    public static function errorResponse(Errors $errors, \Exception $cause = null)    {        $messages = array_map(function (Error $error) {            $message = $error->getDetail() ?: $error->getTitle();            return sprintf('%s: %s', $error->getCode(), $message);        }, $errors->getErrors());        $messages = implode(', ', $messages);        if ($cause !== null) {            return new static($messages, $cause->getCode(), $cause);        }        return new static($messages);    }}
 |