kopia lustrzana https://github.com/nextcloud/social
52 wiersze
1.3 KiB
PHP
52 wiersze
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
namespace OCA\Social\Interfaces\Activity;
|
|
|
|
use OCA\Social\AP;
|
|
use OCA\Social\Exceptions\InvalidOriginException;
|
|
use OCA\Social\Exceptions\ItemNotFoundException;
|
|
use OCA\Social\Exceptions\ItemUnknownException;
|
|
use OCA\Social\Interfaces\IActivityPubInterface;
|
|
use OCA\Social\Model\ActivityPub\ACore;
|
|
|
|
class DeleteInterface extends AbstractActivityPubInterface implements IActivityPubInterface {
|
|
/**
|
|
* @throws InvalidOriginException
|
|
*/
|
|
public function processIncomingRequest(ACore $item): void {
|
|
$item->checkOrigin($item->getId());
|
|
$item->checkOrigin($item->getObjectId());
|
|
|
|
if (!$item->hasObject()) {
|
|
$types = ['Note', 'Person'];
|
|
foreach ($types as $type) {
|
|
try {
|
|
$interface = AP::$activityPub->getInterfaceFromType($type);
|
|
$object = $interface->getItemById($item->getObjectId());
|
|
$interface->delete($object);
|
|
|
|
return;
|
|
} catch (ItemNotFoundException $e) {
|
|
} catch (ItemUnknownException $e) {
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
$object = $item->getObject();
|
|
try {
|
|
$interface = AP::$activityPub->getInterfaceForItem($object);
|
|
$interface->activity($item, $object);
|
|
} catch (ItemUnknownException $e) {
|
|
}
|
|
}
|
|
}
|