[COMPONENT][FreeNetwork] Iterate documentation

This commit is contained in:
Diogo Peralta Cordeiro 2021-12-04 19:52:14 +00:00
parent 778cb57d83
commit 9506909e7a
No known key found for this signature in database
GPG Key ID: 18D2D35001FBFAB0
7 changed files with 55 additions and 5 deletions

View File

@ -61,6 +61,9 @@ class Webfinger extends XrdController
return parent::handle($request);
}
/**
* Configures $this->xrd which will later be printed.
*/
protected function setXRD()
{
$this->xrd->subject = $this->resource;

View File

@ -25,6 +25,12 @@ use App\Core\Event;
use App\Core\GSFile;
use App\Core\HTTPClient;
use App\Entity\Activity;
use App\Util\Exception\NicknameEmptyException;
use App\Util\Exception\NicknameException;
use App\Util\Exception\NicknameInvalidException;
use App\Util\Exception\NicknameNotAllowedException;
use App\Util\Exception\NicknameTakenException;
use App\Util\Exception\NicknameTooLongException;
use Plugin\ActivityPub\Entity\ActivitypubActor;
use XML_XRD;
use function App\Core\I18n\_m;
@ -49,7 +55,7 @@ use Component\FreeNetwork\Util\WebfingerResource\WebfingerResourceActor;
use Component\FreeNetwork\Util\WebfingerResource\WebfingerResourceNote;
use Exception;
use Plugin\ActivityPub\Entity\ActivitypubActivity;
use Plugin\ActivityPub\Util\Response\TypeResponse;
use Plugin\ActivityPub\Util\TypeResponse;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use XML_XRD_Element_Link;
@ -107,7 +113,23 @@ class FreeNetwork extends Component
return Event::stop;
}
public function onEndGetWebFingerResource($resource, ?WebfingerResource &$target = null, array $args = [])
/**
* Last attempts getting a WebFingerResource object
*
* @param string $resource String that contains the requested URI
* @param WebfingerResource|null $target WebFingerResource extended object goes here
* @param array $args Array which may contains arguments such as 'rel' filtering values
* @return bool
* @throws NoSuchActorException
* @throws ServerException
* @throws NicknameEmptyException
* @throws NicknameException
* @throws NicknameInvalidException
* @throws NicknameNotAllowedException
* @throws NicknameTakenException
* @throws NicknameTooLongException
*/
public function onEndGetWebFingerResource(string $resource, ?WebfingerResource &$target = null, array $args = []): bool
{
// * Either we didn't find the profile, then we want to make
// the $profile variable null for clarity.

View File

@ -204,7 +204,7 @@ class Discovery
return $uri;
}
public static function isAcct($uri): bool
public static function isAcct(string $uri): bool
{
return mb_strtolower(mb_substr($uri, 0, 5)) == 'acct:';
}

View File

@ -38,7 +38,12 @@ abstract class WebfingerResource
return $this->object;
}
public function getAliases()
/**
* List of alternative IDs of a certain Actor
*
* @return array
*/
public function getAliases(): array
{
$aliases = $this->object->getAliasesWithIDs();

View File

@ -32,7 +32,7 @@ class WebfingerResourceActor extends WebFingerResource
parent::__construct($object);
}
public function getAliases()
public function getAliases(): array
{
$aliases = [];
@ -46,6 +46,12 @@ class WebfingerResourceActor extends WebFingerResource
return array_merge($aliases, parent::getAliases());
}
/**
* Reconstruct WebFinger acct: from object
*
* @return array|false|mixed|string|string[]|null
* @throws WebfingerReconstructionException
*/
public function reconstructAcct()
{
$acct = null;

View File

@ -28,6 +28,11 @@ class WebfingerResourceNote extends WebfingerResource
parent::__construct($object);
}
/**
* Update given XRD with self's data
*
* @param XML_XRD $xrd
*/
public function updateXRD(XML_XRD $xrd)
{
if (Event::handle('StartWebFingerNoticeLinks', [$xrd, $this->object])) {

View File

@ -42,6 +42,15 @@ class Notification extends Component
return Event::next;
}
/**
* Bring given Activity to Targets's attention
*
* @param Actor $sender
* @param Activity $activity
* @param array $targets
* @param string|null $reason
* @return bool
*/
public function notify(Actor $sender, Activity $activity, array $targets, ?string $reason = null): bool
{
$remote_targets = [];