]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Xrd.php
Merge pull request #11872 from annando/warnings
[friendica.git] / src / Module / Xrd.php
index 1fc0431095d5e52dccd001b9723b445c52d02e57..143d3e722ba3f929d3912f515d3dd1459aa00949 100644 (file)
@@ -28,6 +28,7 @@ use Friendica\Core\System;
 use Friendica\DI;
 use Friendica\Model\Photo;
 use Friendica\Model\User;
+use Friendica\Network\HTTPException\NotFoundException;
 use Friendica\Protocol\ActivityNamespace;
 use Friendica\Protocol\Salmon;
 
@@ -77,19 +78,19 @@ class Xrd extends BaseModule
                if ($name == User::getActorName()) {
                        $owner = User::getSystemAccount();
                        if (empty($owner)) {
-                               throw new \Friendica\Network\HTTPException\NotFoundException();
+                               throw new NotFoundException('System account was not found. Please setup your Friendica installation properly.');
                        }
-                       self::printSystemJSON($owner);
+                       $this->printSystemJSON($owner);
                } else {
                        $user = User::getByNickname($name);
                        if (empty($user)) {
-                               throw new \Friendica\Network\HTTPException\NotFoundException();
+                               throw new NotFoundException('User was not found for name=' . $name);
                        }
 
                        $owner = User::getOwnerDataById($user['uid']);
                        if (empty($owner)) {
                                DI::logger()->warning('No owner data for user id', ['uri' => $uri, 'name' => $name, 'user' => $user]);
-                               throw new \Friendica\Network\HTTPException\NotFoundException();
+                               throw new NotFoundException('Owner was not found for user->uid=' . $user['uid']);
                        }
 
                        $alias = str_replace('/profile/', '/~', $owner['url']);
@@ -102,14 +103,15 @@ class Xrd extends BaseModule
                }
 
                if ($mode == Response::TYPE_XML) {
-                       self::printXML($alias, DI::baseUrl()->get(), $user, $owner, $avatar);
+                       $this->printXML($alias, $user, $owner, $avatar);
                } else {
-                       self::printJSON($alias, DI::baseUrl()->get(), $owner, $avatar);
+                       $this->printJSON($alias, $owner, $avatar);
                }
        }
 
-       private static function printSystemJSON(array $owner)
+       private function printSystemJSON(array $owner)
        {
+               $baseURL = $this->baseUrl->get();
                $json = [
                        'subject' => 'acct:' . $owner['addr'],
                        'aliases' => [$owner['url']],
@@ -126,26 +128,26 @@ class Xrd extends BaseModule
                                ],
                                [
                                        'rel'      => 'http://ostatus.org/schema/1.0/subscribe',
-                                       'template' => DI::baseUrl()->get() . '/follow?url={uri}',
+                                       'template' => $baseURL . '/follow?url={uri}',
                                ],
                                [
                                        'rel'  => ActivityNamespace::FEED,
                                        'type' => 'application/atom+xml',
-                                       'href' => $owner['poll'] ?? DI::baseUrl()->get(),
+                                       'href' => $owner['poll'] ?? $baseURL,
                                ],
                                [
                                        'rel'  => 'salmon',
-                                       'href' => DI::baseUrl()->get() . '/salmon/' . $owner['nickname'],
+                                       'href' => $baseURL . '/salmon/' . $owner['nickname'],
                                ],
                                [
                                        'rel'  => 'http://microformats.org/profile/hcard',
                                        'type' => 'text/html',
-                                       'href' => DI::baseUrl()->get() . '/hcard/' . $owner['nickname'],
+                                       'href' => $baseURL . '/hcard/' . $owner['nickname'],
                                ],
                                [
                                        'rel'  => 'http://joindiaspora.com/seed_location',
                                        'type' => 'text/html',
-                                       'href' => DI::baseUrl()->get(),
+                                       'href' => $baseURL,
                                ],
                        ]
                ];
@@ -153,8 +155,9 @@ class Xrd extends BaseModule
                System::jsonExit($json, 'application/jrd+json; charset=utf-8');
        }
 
-       private static function printJSON($alias, $baseURL, $owner, $avatar)
+       private function printJSON(string $alias, array $owner, array $avatar)
        {
+               $baseURL = $this->baseUrl->get();
                $salmon_key = Salmon::salmonKey($owner['spubkey']);
 
                $json = [
@@ -234,8 +237,9 @@ class Xrd extends BaseModule
                System::jsonExit($json, 'application/jrd+json; charset=utf-8');
        }
 
-       private static function printXML($alias, $baseURL, $user, $owner, $avatar)
+       private function printXML(string $alias, array $user, array $owner, array $avatar)
        {
+               $baseURL = $this->baseUrl->get();
                $salmon_key = Salmon::salmonKey($owner['spubkey']);
 
                $tpl = Renderer::getMarkupTemplate('xrd_person.tpl');