Source of file HttpStatusCodes.php

Size: 4,516 Bytes - Last Modified: 2020-04-14T16:12:35+00:00

/home/slawek/workspace/filestack/php/original-filestack-php/filestack/HttpStatusCodes.php

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
<?php
namespace Filestack;

/**
 * Helper Class for Http Statuses
 */
class HttpStatusCodes
{

    const HTTP_CONTINUE                       = 100;
    const HTTP_SWITCHING_PROTOCOLS            = 101;

    const HTTP_OK                             = 200;
    const HTTP_CREATED                        = 201;
    const HTTP_ACCEPTED                       = 202;
    const HTTP_NONAUTHORITATIVE_INFORMATION   = 203;
    const HTTP_NO_CONTENT                     = 204;
    const HTTP_RESET_CONTENT                  = 205;
    const HTTP_PARTIAL_CONTENT                = 206;

    const HTTP_MULTIPLE_CHOICES               = 300;
    const HTTP_MOVED_PERMANENTLY              = 301;
    const HTTP_FOUND                          = 302;
    const HTTP_SEE_OTHER                      = 303;
    const HTTP_NOT_MODIFIED                   = 304;
    const HTTP_USE_PROXY                      = 305;
    const HTTP_UNUSED                         = 306;
    const HTTP_TEMPORARY_REDIRECT             = 307;

    const HTTP_BAD_REQUEST                    = 400;
    const HTTP_UNAUTHORIZED                   = 401;
    const HTTP_PAYMENT_REQUIRED               = 402;
    const HTTP_FORBIDDEN                      = 403;
    const HTTP_NOT_FOUND                      = 404;
    const HTTP_METHOD_NOT_ALLOWED             = 405;
    const HTTP_NOT_ACCEPTABLE                 = 406;
    const HTTP_PROXY_AUTHENTICATION_REQUIRED  = 407;
    const HTTP_REQUEST_TIMEOUT                = 408;
    const HTTP_CONFLICT                       = 409;
    const HTTP_GONE                           = 410;
    const HTTP_LENGTH_REQUIRED                = 411;
    const HTTP_PRECONDITION_FAILED            = 412;
    const HTTP_REQUEST_ENTITY_TOO_LARGE       = 413;
    const HTTP_REQUEST_URI_TOO_LONG           = 414;
    const HTTP_UNSUPPORTED_MEDIA_TYPE         = 415;
    const HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
    const HTTP_EXPECTATION_FAILED             = 417;

    const HTTP_SERVER_ERROR                   = 500;
    const HTTP_NOT_IMPLEMENTED                = 501;
    const HTTP_BAD_GATEWAY                    = 502;
    const HTTP_SERVICE_UNAVAILABLE            = 503;
    const HTTP_GATEWAY_TIMEOUT                = 504;
    const HTTP_VERSION_NOT_SUPPORTED          = 505;


    private static $messages = array(
        100 => '100 Continue',
        101 => '101 Switching Protocols',

        200 => '200 OK',
        201 => '201 Created',
        202 => '202 Accepted',
        203 => '203 Non-Authoritative Information',
        204 => '204 No Content',
        205 => '205 Reset Content',
        206 => '206 Partial Content',

        300 => '300 Multiple Choices',
        301 => '301 Moved Permanently',
        302 => '302 Found',
        303 => '303 See Other',
        304 => '304 Not Modified',
        305 => '305 Use Proxy',
        306 => '306 (Unused)',
        307 => '307 Temporary Redirect',

        400 => '400 Bad Request',
        401 => '401 Unauthorized',
        402 => '402 Payment Required',
        403 => '403 Forbidden',
        404 => '404 Not Found',
        405 => '405 Method Not Allowed',
        406 => '406 Not Acceptable',
        407 => '407 Proxy Authentication Required',
        408 => '408 Request Timeout',
        409 => '409 Conflict',
        410 => '410 Gone',
        411 => '411 Length Required',
        412 => '412 Precondition Failed',
        413 => '413 Request Entity Too Large',
        414 => '414 Request-URI Too Long',
        415 => '415 Unsupported Media Type',
        416 => '416 Requested Range Not Satisfiable',
        417 => '417 Expectation Failed',

        500 => '500 Internal Server Error',
        501 => '501 Not Implemented',
        502 => '502 Bad Gateway',
        503 => '503 Service Unavailable',
        504 => '504 Gateway Timeout',
        505 => '505 HTTP Version Not Supported'
    );

    public static function getMessage($code)
    {
        return self::$messages[$code];
    }

    public static function isError($code)
    {
        return is_numeric($code) && $code >= self::HTTP_BAD_REQUEST;
    }

    public static function isNetworkError($code)
    {
        return is_numeric($code) &&
            in_array($code, [
                self::HTTP_REQUEST_TIMEOUT,
                self::HTTP_GATEWAY_TIMEOUT,
                self::HTTP_SERVICE_UNAVAILABLE
            ]
        );
    }

    public static function isServerError($code)
    {
        return is_numeric($code) && $code >= self::HTTP_SERVER_ERROR;
    }
}
?>