X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FApi%2FApiResponse.php;h=b5b2a4717c45bf9a25c9a34c15a1463aff8d5769;hb=53aba7b37e019d4093d0985e394d393ae77ef0df;hp=8f493138390ec3299c308c8eba44f36511628d37;hpb=621b4216d94badbe7a4797c42e704ce63e8df3c4;p=friendica.git diff --git a/src/Module/Api/ApiResponse.php b/src/Module/Api/ApiResponse.php index 8f49313839..b5b2a4717c 100644 --- a/src/Module/Api/ApiResponse.php +++ b/src/Module/Api/ApiResponse.php @@ -1,4 +1,23 @@ . + * + */ 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; @@ -103,7 +123,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', @@ -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; @@ -221,6 +245,18 @@ class ApiResponse extends Response $this->addContent($return); } + /** + * Wrapper around exit() for JSON only responses + * + * @param array $data + * + * @return void + */ + public function exitWithJson(array $data) + { + $this->exit('content', ['content' => $data], static::TYPE_JSON); + } + /** * Quit execution with the message that the endpoint isn't implemented * @@ -240,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); } }