Preparation for suggestions under AP

This commit is contained in:
Michael 2018-10-06 18:42:26 +00:00
parent 1551570b7f
commit 192c6c8d4f
2 changed files with 31 additions and 0 deletions

View file

@ -797,6 +797,36 @@ class Transmitter
return $data; 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 * Transmits a profile deletion to a given inbox
* *

View file

@ -25,6 +25,7 @@ class APDelivery extends BaseObject
if ($cmd == Delivery::MAIL) { if ($cmd == Delivery::MAIL) {
} elseif ($cmd == Delivery::SUGGESTION) { } elseif ($cmd == Delivery::SUGGESTION) {
ActivityPub\Transmitter::sendContactSuggestion($uid, $inbox, $item_id);
} elseif ($cmd == Delivery::RELOCATION) { } elseif ($cmd == Delivery::RELOCATION) {
} elseif ($cmd == Delivery::REMOVAL) { } elseif ($cmd == Delivery::REMOVAL) {
ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox); ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox);