]> git.mxchange.org Git - friendica.git/commitdiff
Preparation for suggestions under AP
authorMichael <heluecht@pirati.ca>
Sat, 6 Oct 2018 18:42:26 +0000 (18:42 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 6 Oct 2018 18:42:26 +0000 (18:42 +0000)
src/Protocol/ActivityPub/Transmitter.php
src/Worker/APDelivery.php

index 9fad787b1b19586daa97d29f97c157a00745b80d..cb3e1f30af046b6ed5b8ce9d6e1f6e7a21829a94 100644 (file)
@@ -797,6 +797,36 @@ class Transmitter
                return $data;
        }
 
+       /**
+        * Transmits a contact suggestion to a given inbox
+        *
+        * @param integer $uid User ID
+        * @param string $inbox Target inbox
+        * @param integer $suggestion_id Suggestion ID
+        */
+       public static function sendContactSuggestion($uid, $inbox, $suggestion_id)
+       {
+               $owner = User::getOwnerDataById($uid);
+               $profile = APContact::getByURL($owner['url']);
+
+               $suggestion = DBA::selectFirst('fsuggest', ['url', 'note', 'created'], ['id' => $suggestion_id]);
+
+               $data = ['@context' => 'https://www.w3.org/ns/activitystreams',
+                       'id' => System::baseUrl() . '/activity/' . System::createGUID(),
+                       'type' => 'Announce',
+                       'actor' => $owner['url'],
+                       'object' => $suggestion['url'],
+                       'content' => $suggestion['note'],
+                       'published' => DateTimeFormat::utc($suggestion['created'] . '+00:00', DateTimeFormat::ATOM),
+                       'to' => [ActivityPub::PUBLIC_COLLECTION],
+                       'cc' => []];
+
+               $signed = LDSignature::sign($data, $owner);
+
+               logger('Deliver profile deletion for user ' . $uid . ' to ' . $inbox . ' via ActivityPub', LOGGER_DEBUG);
+               HTTPSignature::transmit($signed, $inbox, $uid);
+       }
+
        /**
         * Transmits a profile deletion to a given inbox
         *
index 039cdfbb3b6acec830bd6270a378b5825115eb88..7b1ad760557022e3144c5d03382cabfe53ed6ada 100644 (file)
@@ -25,6 +25,7 @@ class APDelivery extends BaseObject
 
                if ($cmd == Delivery::MAIL) {
                } elseif ($cmd == Delivery::SUGGESTION) {
+                       ActivityPub\Transmitter::sendContactSuggestion($uid, $inbox, $item_id);
                } elseif ($cmd == Delivery::RELOCATION) {
                } elseif ($cmd == Delivery::REMOVAL) {
                        ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox);