Skip to content
Snippets Groups Projects
Select Git revision
  • 8be0434c0aa7126531a355dc833f538b3d69c036
  • master default protected
  • fix/body-raw
  • devel
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0
10 results

CurlExceptionFactory.php

Blame
  • CurlExceptionFactory.php 1.08 KiB
    <?php
    
    namespace WPDesk\HttpClient\Curl;
    
    use WPDesk\HttpClient\Curl\Exception\CurlException;
    use WPDesk\HttpClient\Curl\Exception\CurlTimedOutException;
    
    class CurlExceptionFactory
    {
        /**
         * Convert curl code to appropriate exception class.
         *
         * @param int $curlCode Code from https://curl.haxx.se/libcurl/c/libcurl-errors.html
         * @param string $curlMessage
         * @return CurlException
         */
        public static function createCurlException($curlCode, $curlMessage) {
            switch ($curlCode) {
                case CURLE_OPERATION_TIMEDOUT:
                    return new CurlTimedOutException($curlMessage, $curlCode);
                default:
                    return self::createDefaultException($curlMessage, $curlCode);
            }
        }
    
        /**
         * Creates default Curl exception
         *
         * @param $code
         * @param $message
         * @param \Exception|null $prev
         * @return CurlException
         */
        public static function createDefaultException($code, $message, \Exception $prev = null) {
            return new CurlException('Default exception: ' . $message, $code, $prev);
        }
    }