]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Api/ApiResponse.php
Treat unsupported API call as HTTP error
[friendica.git] / src / Module / Api / ApiResponse.php
index a6a94ad81c559e209635013e2da2039b35eb1e73..b5b2a4717c45bf9a25c9a34c15a1463aff8d5769 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2023, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Module\Api;
 
@@ -80,7 +99,7 @@ class ApiResponse extends Response
 
                $data3 = [$root_element => $data2];
 
-               return XML::fromArray($data3, $xml, false, $namespaces);
+               return XML::fromArray($data3, $dummy, false, $namespaces);
        }
 
        /**
@@ -88,9 +107,10 @@ class ApiResponse extends Response
         *
         * @param array $arr Array to be passed to template
         * @param int   $cid Contact ID of template
+        *
         * @return array
         */
-       private function addRSSValues(array $arr, int $cid)
+       private function addRSSValues(array $arr, int $cid): array
        {
                if (empty($cid)) {
                        return $arr;
@@ -130,6 +150,7 @@ class ApiResponse extends Response
                        case 'atom':
                        case 'xml':
                                return $this->createXML($data, $root_element);
+
                        case 'json':
                        default:
                                return $data;
@@ -200,6 +221,7 @@ class ApiResponse extends Response
                        case 'xml':
                                $this->setType(static::TYPE_XML);
                                break;
+
                        case 'json':
                                $this->setType(static::TYPE_JSON);
                                if (!empty($return)) {
@@ -210,9 +232,11 @@ class ApiResponse extends Response
                                        $return = $json;
                                }
                                break;
+
                        case 'rss':
                                $this->setType(static::TYPE_RSS);
                                break;
+
                        case 'atom':
                                $this->setType(static::TYPE_ATOM);
                                break;
@@ -225,6 +249,8 @@ class ApiResponse extends Response
         * Wrapper around exit() for JSON only responses
         *
         * @param array $data
+        *
+        * @return void
         */
        public function exitWithJson(array $data)
        {
@@ -250,9 +276,8 @@ class ApiResponse extends Response
                                'agent'   => $_SERVER['HTTP_USER_AGENT'] ?? '',
                                'request' => $request,
                        ]);
-               $error             = $this->l10n->t('API endpoint %s %s is not implemented', strtoupper($method), $path);
-               $error_description = $this->l10n->t('The API endpoint is currently not implemented but might be in the future.');
+               $error = $this->l10n->t('API endpoint %s %s is not implemented but might be in the future.', strtoupper($method), $path);
 
-               $this->exit('error', ['error' => ['error' => $error, 'error_description' => $error_description]]);
+               $this->error(501, 'Not Implemented', $error);
        }
 }