]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Api/ApiResponse.php
Issue 11309: improved check for wanted posts
[friendica.git] / src / Module / Api / ApiResponse.php
index 863e1d21d2591a7c042017eb2138ae3492f670bc..0eb2f644b9fc57b5a893dad58c94914890dd524a 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2022, 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;
 
@@ -8,7 +27,6 @@ use Friendica\Core\L10n;
 use Friendica\Module\Response;
 use Friendica\Util\Arrays;
 use Friendica\Util\DateTimeFormat;
-use Friendica\Util\HTTPInputData;
 use Friendica\Util\XML;
 use Psr\Log\LoggerInterface;
 use Friendica\Factory\Api\Twitter\User as TwitterUser;
@@ -104,7 +122,7 @@ class ApiResponse extends Response
                        'alternate'    => $user_info['url'],
                        'self'         => $this->baseUrl . '/' . $this->args->getQueryString(),
                        'base'         => $this->baseUrl,
-                       'updated'      => DateTimeFormat::utc(null, DateTimeFormat::API),
+                       'updated'      => DateTimeFormat::utcNow(DateTimeFormat::API),
                        'atom_updated' => DateTimeFormat::utcNow(DateTimeFormat::ATOM),
                        'language'     => $user_info['lang'],
                        'logo'         => $this->baseUrl . '/images/friendica-32.png',
@@ -222,15 +240,26 @@ class ApiResponse extends Response
                $this->addContent($return);
        }
 
+       /**
+        * Wrapper around exit() for JSON only responses
+        *
+        * @param array $data
+        */
+       public function exitWithJson(array $data)
+       {
+               $this->exit('content', ['content' => $data], static::TYPE_JSON);
+       }
+
        /**
         * Quit execution with the message that the endpoint isn't implemented
         *
         * @param string $method
+        * @param array  $request (optional) The request content of the current call for later analysis
         *
         * @return void
         * @throws \Exception
         */
-       public function unsupported(string $method = 'all')
+       public function unsupported(string $method = 'all', array $request = [])
        {
                $path = $this->args->getQueryString();
                $this->logger->info('Unimplemented API call',
@@ -238,7 +267,7 @@ class ApiResponse extends Response
                                'method'  => $method,
                                'path'    => $path,
                                'agent'   => $_SERVER['HTTP_USER_AGENT'] ?? '',
-                               'request' => HTTPInputData::process()
+                               '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.');