diff --git a/schemas/core.yaml b/schemas/core.yaml index 2f8be44..4c629aa 100644 --- a/schemas/core.yaml +++ b/schemas/core.yaml @@ -98,6 +98,7 @@ classes: extends: Object isCoreType: true mixins: + - ActivityMixin properties: actor: type: WrapAS2[Object] | str | None diff --git a/src/apmodel/mixins/activity.py b/src/apmodel/mixins/activity.py new file mode 100644 index 0000000..9278b34 --- /dev/null +++ b/src/apmodel/mixins/activity.py @@ -0,0 +1,18 @@ +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from apmodel.activity import Accept, Reject + from apmodel.core import Activity + from apmodel.objects import Actor + + +class ActivityMixin: + def accept(self: "Activity", id: str, actor: "Actor") -> "Accept": + from apmodel.activity.accept import Accept + + return Accept(id=id, actor=actor, object=self) + + def reject(self: "Activity", id: str, actor: "Actor") -> "Reject": + from apmodel.activity.reject import Reject + + return Reject(id=id, actor=actor, object=self) diff --git a/vendor/activitystreams b/vendor/activitystreams index a7071ff..3515da4 160000 --- a/vendor/activitystreams +++ b/vendor/activitystreams @@ -1 +1 @@ -Subproject commit a7071ff7473611efea933bf73c277ea73bcc79cb +Subproject commit 3515da42e6b0f283cc53dec3cb35f1e9422b2022