Skip to content

Commit

Permalink
error handling strategy for intelligent flow
Browse files Browse the repository at this point in the history
  • Loading branch information
hueyl77 committed Aug 6, 2017
1 parent 68bcf40 commit a854fee
Show file tree
Hide file tree
Showing 9 changed files with 503 additions and 39 deletions.
3 changes: 1 addition & 2 deletions filestack/FilestackClient.php
Expand Up @@ -686,8 +686,7 @@ public function upload($filepath, $location = 's3', $filename = '', $mimetype =
$metadata, $this->security);

// determine if app has intelligent_ingestion enabled
if (array_key_exists('upload_type', $upload_data) &&
$upload_data['upload_type'] == 'intelligent_ingestion') {
if ($this->upload_processor->intelligenceEnabled($upload_data)) {

// intelligent ingestion flag enabled
$this->upload_processor->setIntelligent(true);
Expand Down
11 changes: 10 additions & 1 deletion filestack/FilestackConfig.php
Expand Up @@ -14,8 +14,17 @@ class FilestackConfig

const UPLOAD_PART_SIZE = 1024 * 1024 * 8; // last_digit=MB
const UPLOAD_CHUNK_SIZE = 1024 * 1024 * 1; // last_digit=MB
const UPLOAD_MIN_CHUNK_SIZE = 1024 * 32; // last_digit=KB

const UPLOAD_WAIT_ATTEMPTS = 300;
const UPLOAD_WAIT_SECONDS = 2;
const UPLOAD_TIMEOUT_SECONDS = 30;

const MAX_RETRIES = 5;

const ACCEPTED_NOT_COMPLETE_CODE = 202;
const HTTP_CODE_OK = 200;
const HTTP_CODE_ACCEPTED = 202;
const HTTP_CODE_UNAUTHORIZED = 401;
const HTTP_CODE_FORBIDDEN = 403;
const HTTP_CODE_ERROR = 500;
}
128 changes: 128 additions & 0 deletions filestack/HttpStatusCodes.php
@@ -0,0 +1,128 @@
<?php
namespace Filestack;

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;
}
}
?>

0 comments on commit a854fee

Please sign in to comment.