]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Contact/Poke.php
Merge pull request #11003 from annando/fix-api
[friendica.git] / src / Module / Contact / Poke.php
index 9975ac1f289fe3f5532da42d954ff7a862f95f37..23ec95a435ff9f60c96f9d5dad117e9263f48481 100644 (file)
@@ -3,6 +3,7 @@
 namespace Friendica\Module\Contact;
 
 use Friendica\BaseModule;
+use Friendica\Content\Widget;
 use Friendica\Core\Hook;
 use Friendica\Core\Logger;
 use Friendica\Core\Renderer;
@@ -10,15 +11,16 @@ use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model;
+use Friendica\Model\Contact;
 use Friendica\Network\HTTPException;
 use Friendica\Protocol\Activity;
 use Friendica\Util\XML;
 
 class Poke extends BaseModule
 {
-       public static function post(array $parameters = [])
+       public function post()
        {
-               if (!local_user() || empty($parameters['id'])) {
+               if (!local_user() || empty($this->parameters['id'])) {
                        return self::postReturn(false);
                }
 
@@ -37,28 +39,29 @@ class Poke extends BaseModule
 
                $activity = Activity::POKE . '#' . urlencode($verbs[$verb][0]);
 
-               $contact_id = intval($parameters['id']);
+               $contact_id = intval($this->parameters['id']);
                if (!$contact_id) {
                        return self::postReturn(false);
                }
 
                Logger::info('verb ' . $verb . ' contact ' . $contact_id);
 
-               $contact = DBA::selectFirst('contact', ['id', 'name'], ['id' => $parameters['id'], 'uid' => local_user()]);
+               $contact = DBA::selectFirst('contact', ['id', 'name', 'url', 'photo'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
                if (!DBA::isResult($contact)) {
                        return self::postReturn(false);
                }
 
                $a = DI::app();
 
-               $private = (!empty($_GET['private']) ? intval($_GET['private']) : Model\Item::PUBLIC);
+               $private = !empty($_POST['private']) ? Model\Item::PRIVATE : Model\Item::PUBLIC;
 
-               $allow_cid     = ($private ? '<' . $contact['id']. '>' : $a->user['allow_cid']);
-               $allow_gid     = ($private ? '' : $a->user['allow_gid']);
-               $deny_cid      = ($private ? '' : $a->user['deny_cid']);
-               $deny_gid      = ($private ? '' : $a->user['deny_gid']);
+               $user = Model\User::getById($a->getLoggedInUserId());
+               $allow_cid     = ($private ? '<' . $contact['id']. '>' : $user['allow_cid']);
+               $allow_gid     = ($private ? '' : $user['allow_gid']);
+               $deny_cid      = ($private ? '' : $user['deny_cid']);
+               $deny_gid      = ($private ? '' : $user['deny_gid']);
 
-               $actor = $a->contact;
+               $actor = Contact::getById($a->getContactId());
 
                $uri = Model\Item::newURI($uid);
 
@@ -67,7 +70,6 @@ class Poke extends BaseModule
                $arr['guid']          = System::createUUID();
                $arr['uid']           = $uid;
                $arr['uri']           = $uri;
-               $arr['parent-uri']    = $uri;
                $arr['wall']          = 1;
                $arr['contact-id']    = $actor['id'];
                $arr['owner-name']    = $actor['name'];
@@ -87,7 +89,7 @@ class Poke extends BaseModule
                $arr['object-type']   = Activity\ObjectType::PERSON;
 
                $arr['origin']        = 1;
-               $arr['body']          = '[url=' . $actor['url'] . ']' . $actor['name'] . '[/url]' . ' ' . $verbs[$verb][2] . ' ' . '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
+               $arr['body']          = '@[url=' . $actor['url'] . ']' . $actor['name'] . '[/url]' . ' ' . $verbs[$verb][2] . ' ' . '@[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
 
                $arr['object'] = '<object><type>' . Activity\ObjectType::PERSON . '</type><title>' . XML::escape($contact['name']) . '</title><id>' . XML::escape($contact['url']) . '</id>';
                $arr['object'] .= '<link>' . XML::escape('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />') . "\n";
@@ -110,9 +112,7 @@ class Poke extends BaseModule
         */
        private static function postReturn(bool $success)
        {
-               if ($success) {
-                       info(DI::l10n()->t('Poke successfully sent.'));
-               } else {
+               if (!$success) {
                        notice(DI::l10n()->t('Error while sending poke, please retry.'));
                }
 
@@ -123,22 +123,22 @@ class Poke extends BaseModule
                return $success;
        }
 
-       public static function content(array $parameters = [])
+       public function content(): string
        {
                if (!local_user()) {
                        throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this module.'));
                }
 
-               if (empty($parameters['id'])) {
+               if (empty($this->parameters['id'])) {
                        throw new HTTPException\BadRequestException();
                }
 
-               $contact = DBA::selectFirst('contact', ['id', 'url', 'name'], ['id' => $parameters['id'], 'uid' => local_user()]);
+               $contact = DBA::selectFirst('contact', ['id', 'url', 'name'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
                if (!DBA::isResult($contact)) {
                        throw new HTTPException\NotFoundException();
                }
 
-               Model\Profile::load(DI::app(), '', Model\Contact::getDetailsByURL($contact["url"]));
+               DI::page()['aside'] = Widget\VCard::getHTML(Model\Contact::getByURL($contact["url"], false));
 
                $verbs = [];
                foreach (DI::l10n()->getPokeVerbs() as $verb => $translations) {