diff options
Diffstat (limited to 'static/classes')
| -rwxr-xr-x | static/classes/Response.class.php | 92 |
1 files changed, 42 insertions, 50 deletions
diff --git a/static/classes/Response.class.php b/static/classes/Response.class.php index 53fadef..812d29b 100755 --- a/static/classes/Response.class.php +++ b/static/classes/Response.class.php @@ -31,21 +31,30 @@ class Response { switch ($response_type) { case 'csv': + header('Content-Type: text/csv; charset=UTF-8'); + $this->type = $response_type; + break; + case 'html': + header('Content-Type: text/html; charset=UTF-8'); + $this->type = $response_type; + break; + case 'json': + header('Content-Type: application/json; charset=UTF-8'); + $this->type = $response_type; + break; case 'gyazo': + // Deprecated API since version 2.0.0, fallback to similar text API header('Content-Type: text/plain; charset=UTF-8'); - $this->type = $response_type; + $this->type = 'text'; break; case 'text': header('Content-Type: text/plain; charset=UTF-8'); $this->type = $response_type; break; - case 'html': - header('Content-Type: text/html; charset=UTF-8'); - $this->type = $response_type; - break; default: header('Content-Type: application/json; charset=UTF-8'); $this->type = 'json'; + $this->error(400, 'Invalid response type. Valid options are: csv, html, json, text.'); break; } } @@ -58,18 +67,15 @@ class Response case 'csv': $response = $this->csv_error($desc); break; - case 'gyazo': - $response = $this->gyazo_error($code, $desc); - break; - case 'text': - $response = $this->text_error($code, $desc); - break; case 'html': $response = $this->html_error($code, $desc); break; - default: + case 'json': $response = $this->json_error($code, $desc); break; + case 'text': + $response = $this->text_error($code, $desc); + break; } http_response_code($code); @@ -81,21 +87,18 @@ class Response $response = null; switch ($this->type) { - case 'html': - $response = $this->html_success($files); - break; case 'csv': $response = $this->csv_success($files); break; - case 'gyazo': - $response = $this->gyazo_success($files); + case 'html': + $response = $this->html_success($files); + break; + case 'json': + $response = $this->json_success($files); break; case 'text': $response = $this->text_success($files); break; - default: - $response = $this->json_success($files); - break; } http_response_code(200); @@ -104,41 +107,17 @@ class Response private static function csv_error($description) { - return "error\n".$description."\n"; + return '"error"'."\r\n"."\"$description\""."\r\n"; } private static function csv_success($files) { - $result = "name,url,hash,size\n"; + $result = '"name","url","hash","size"'."\r\n"; foreach ($files as $file) { - $result .= $file['name'].','. - $file['url'].','. - $file['hash'].','. - $file['size']."\n"; - } - - return $result; - } - - private static function gyazo_error($code, $description) - { - return 'ERROR: ('.$code.') '.$description; - } - - private static function gyazo_success($files) - { - return POMF_URL.$files[0]['url']; - } - - private static function text_error($code, $description) - { - return 'ERROR: ('.$code.') '.$description; - } - - private static function text_success($files) - { - foreach ($files as $file) { - $result .= $file['url']."\n"; + $result .= '"'.$file['name'].'"'.','. + '"'.$file['url'].'"'.','. + '"'.$file['hash'].'"'.','. + '"'.$file['size'].'"'."\r\n"; } return $result; @@ -174,4 +153,17 @@ class Response 'files' => $files, ), JSON_PRETTY_PRINT); } + private static function text_error($code, $description) + { + return 'ERROR: ('.$code.') '.$description; + } + + private static function text_success($files) + { + foreach ($files as $file) { + $result .= $file['url']."\n"; + } + + return $result; + } } |
