]> git.mxchange.org Git - friendica.git/commitdiff
Make Response even more compatible ..
authorPhilipp <admin@philipp.info>
Mon, 3 Jan 2022 19:18:43 +0000 (20:18 +0100)
committerPhilipp <admin@philipp.info>
Tue, 4 Jan 2022 19:59:28 +0000 (20:59 +0100)
src/Core/System.php
src/Module/Response.php

index 8a9cdfb96b3f9ac317b153aa32629aaddebdce35..de0c80b3de7f96530bdbf59ae34214f2305745db 100644 (file)
 
 namespace Friendica\Core;
 
-use Exception;
-use Friendica\App;
 use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\DI;
+use Friendica\Module\Response;
 use Friendica\Network\HTTPException\FoundException;
 use Friendica\Network\HTTPException\MovedPermanentlyException;
 use Friendica\Network\HTTPException\TemporaryRedirectException;
@@ -292,11 +291,9 @@ class System
                        Logger::notice('xml_status returning non_zero: ' . $st . " message=" . $message);
                }
 
-               header("Content-type: text/xml");
-
-               $xmldata = ["result" => $result];
-
-               echo XML::fromArray($xmldata, $xml);
+               DI::apiResponse()->setType(Response::TYPE_XML);
+               DI::apiResponse()->addContent(XML::fromArray(["result" => $result], $xml));
+               DI::page()->exit(DI::apiResponse()->generate());
 
                exit();
        }
@@ -314,9 +311,9 @@ class System
                if ($val >= 400) {
                        Logger::debug('Exit with error', ['code' => $val, 'message' => $message, 'callstack' => System::callstack(20), 'method' => DI::args()->getMethod(), 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
                }
-               header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $message);
+               DI::apiResponse()->setStatus($val, $message);
+               DI::apiResponse()->addContent($content);
                DI::page()->exit(DI::apiResponse()->generate());
-               echo $content;
 
                exit();
        }
@@ -326,7 +323,7 @@ class System
                if ($httpCode >= 400) {
                        Logger::debug('Exit with error', ['code' => $httpCode, 'content_type' => $content_type, 'callstack' => System::callstack(20), 'method' => DI::args()->getMethod(), 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
                }
-               header($_SERVER["SERVER_PROTOCOL"] . ' ' . $httpCode);
+               DI::apiResponse()->setStatus($httpCode);
                self::jsonExit($data, $content_type);
        }
 
@@ -342,9 +339,9 @@ class System
         * @param integer $options JSON options
         */
        public static function jsonExit($x, $content_type = 'application/json', int $options = 0) {
+               DI::apiResponse()->setType(Response::TYPE_JSON, $content_type);
+               DI::apiResponse()->addContent(json_encode($x, $options));
                DI::page()->exit(DI::apiResponse()->generate());
-               header("Content-type: $content_type");
-               echo json_encode($x, $options);
                exit();
        }
 
@@ -500,7 +497,7 @@ class System
         */
        public static function htmlUpdateExit($o)
        {
-               header("Content-type: text/html");
+               DI::apiResponse()->setType(Response::TYPE_HTML);
                echo "<!DOCTYPE html><html><body>\r\n";
                // We can remove this hack once Internet Explorer recognises HTML5 natively
                echo "<section>";
index db30a10d8cf7cf487777a8cad5343e92d797b354..f9d46da83b7c03679b188df009cb0f90075e5262 100644 (file)
@@ -96,6 +96,9 @@ class Response implements ICanCreateResponses
                }
 
                switch ($type) {
+                       case static::TYPE_HTML:
+                               $content_type = $content_type ?? 'text/html';
+                               break;
                        case static::TYPE_JSON:
                                $content_type = $content_type ?? 'application/json';
                                break;