summaryrefslogtreecommitdiffstats
path: root/src/server/activities/accept.rs
diff options
context:
space:
mode:
authorrtkay123 <dev@kanjala.com>2025-07-16 20:24:52 +0200
committerrtkay123 <dev@kanjala.com>2025-07-16 20:24:52 +0200
commit5fdb24b6a2cef7964a049e789ed90f883221d657 (patch)
tree84b69fdb8faa859797b38b45f952b9c6d7c50165 /src/server/activities/accept.rs
parent0a3040fba40d42c62ea70b7ccbade28e43ebaad5 (diff)
downloadsellershut-5fdb24b6a2cef7964a049e789ed90f883221d657.tar.bz2
sellershut-5fdb24b6a2cef7964a049e789ed90f883221d657.zip
feat: activity
Diffstat (limited to 'src/server/activities/accept.rs')
-rw-r--r--src/server/activities/accept.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/server/activities/accept.rs b/src/server/activities/accept.rs
new file mode 100644
index 0000000..44f26f6
--- /dev/null
+++ b/src/server/activities/accept.rs
@@ -0,0 +1,52 @@
+use crate::{
+ entity::user::User, error::AppError, server::activities::follow::Follow, state::AppHandle,
+};
+use activitypub_federation::{
+ config::Data, fetch::object_id::ObjectId, kinds::activity::AcceptType, traits::Activity,
+};
+use async_trait::async_trait;
+use serde::{Deserialize, Serialize};
+use url::Url;
+
+#[derive(Deserialize, Serialize, Debug)]
+#[serde(rename_all = "camelCase")]
+pub struct Accept {
+ actor: ObjectId<User>,
+ object: Follow,
+ #[serde(rename = "type")]
+ kind: AcceptType,
+ id: Url,
+}
+
+impl Accept {
+ pub fn new(actor: ObjectId<User>, object: Follow, id: Url) -> Accept {
+ Accept {
+ actor,
+ object,
+ kind: Default::default(),
+ id,
+ }
+ }
+}
+
+#[async_trait]
+impl Activity for Accept {
+ type DataType = AppHandle;
+ type Error = AppError;
+
+ fn id(&self) -> &Url {
+ &self.id
+ }
+
+ fn actor(&self) -> &Url {
+ self.actor.inner()
+ }
+
+ async fn verify(&self, _data: &Data<Self::DataType>) -> Result<(), Self::Error> {
+ Ok(())
+ }
+
+ async fn receive(self, _data: &Data<Self::DataType>) -> Result<(), Self::Error> {
+ Ok(())
+ }
+}