*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
ERROR: (' . $code . ') ' . $description . '
'; } /** * Returns a JSON string with the error code and description * * @param $code int|string The error code. * @param $description string The description of the error. * * @return bool|string A JSON string */ private static function jsonError(int|string $code, string $description):bool|string { return json_encode([ 'success' => false, 'errorcode' => $code, 'description' => $description, ], JSON_PRETTY_PRINT); } /** * Returns a string that contains the error code and description * * @param $code int|string The error code. * @param $description string The description of the error. * * @return string A string with the error code and description. */ private static function textError(int|string $code, string $description):string { return 'ERROR: (' . $code . ') ' . $description; } /** * "If the type is csv, then call the csvSuccess function, * if the type is html, then call the htmlSuccess function, etc." * * The `match` keyword is a new feature in PHP 8. It's a lot like a switch statement, but it's more powerful * * @param $files array An array of file objects. */ public function send(array $files):void { $response = match ($this->type) { 'csv' => $this->csvSuccess($files), 'html' => $this->htmlSuccess($files), 'json' => $this->jsonSuccess($files), 'text' => $this->textSuccess($files), }; http_response_code(200); // "200 OK". Success. echo $response; } /** * Takes an array of files and returns a CSV string * * @param $files array An array of files that have been uploaded. * * @return string A string of the files in the array. */ private static function csvSuccess(array $files):string { $result = '"name","url","hash","size"' . "\r\n"; foreach ($files as $file) { $result .= '"' . $file['name'] . '"' . ',' . '"' . $file['url'] . '"' . ',' . '"' . $file['hash'] . '"' . ',' . '"' . $file['size'] . '"' . "\r\n"; } return $result; } /** * Takes an array of files and returns a string of HTML links * * @param $files array An array of files to be uploaded. * * @return string the result of the foreach loop. */ private static function htmlSuccess(array $files):string { $result = ''; foreach ($files as $file) { $result .= '' . $file['url'] . '