gnu-social/plugins/ActivityPub/Util
Diogo Peralta Cordeiro 778cb57d83
[PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface
Instructions below

To extend an Activity properties do:

public function onActivityPubValidateActivityStreamsTwoData(string $type_name, array &$validators): bool {
    if ($type_name === '{Type}') {
        $validators['attribute'] = myValidator::class;
    }
    return Event::next;
}

The Validator should be of the form:

use ActivityPhp\Type;
use ActivityPhp\Type\Util;
use Plugin\ActivityPub\Util\ModelValidator;

class myValidator extends ModelValidator
{
    /**
     * Validate Attribute's value
     *
     * @param mixed $value from JSON's attribute
     * @param mixed $container A {Type}
     * @return bool
     * @throws Exception
     */
    public function validate($value, $container): bool
    {
        // Validate that container is a {Type}
        Util::subclassOf($container, Type\Extended\Object\{Type}::class, true);

        return {Validation Result};

To act on received activities do:

public function onActivityPubNew{Type}(&$obj): bool {

To add information to Activities being federated by ActivityPub do:

public function ActivityPubAddActivityStreamsTwoData(string $type_name, &$type): bool {

To implement an ActivityStreams 2.0 representation do:

public function onActivityPubActivityStreamsTwoResponse(string $route, arrray $vars, ?TypeResponse &$response = null): bool {
        if ($route === '{Object route}') {
                $response = ModelResponse::handle($vars[{Object}]);
                return Event::stop;
        }
        return Event::next;
}
2021-12-04 21:05:07 +00:00
..
Model [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
Response [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
Validator [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
DiscoveryHints.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
Explorer.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
HTTPSignature.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
Model.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
ModelResponse.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
ModelValidator.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00
TypeResponse.php [PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface 2021-12-04 21:05:07 +00:00