feat(domain): add broadcast_like/broadcast_undo_like to OutboundFederationPort
This commit is contained in:
@@ -1390,6 +1390,26 @@ impl domain::ports::OutboundFederationPort for ActivityPubService {
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| domain::errors::DomainError::Internal(e.to_string()))
|
.map_err(|e| domain::errors::DomainError::Internal(e.to_string()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn broadcast_like(
|
||||||
|
&self,
|
||||||
|
_liker_user_id: &domain::value_objects::UserId,
|
||||||
|
_object_ap_id: &str,
|
||||||
|
_author_inbox_url: &str,
|
||||||
|
) -> Result<(), domain::errors::DomainError> {
|
||||||
|
// TODO: implement Like activity broadcasting
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn broadcast_undo_like(
|
||||||
|
&self,
|
||||||
|
_liker_user_id: &domain::value_objects::UserId,
|
||||||
|
_object_ap_id: &str,
|
||||||
|
_author_inbox_url: &str,
|
||||||
|
) -> Result<(), domain::errors::DomainError> {
|
||||||
|
// TODO: implement Undo(Like) activity broadcasting
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
|
|||||||
@@ -249,6 +249,8 @@ mod tests {
|
|||||||
updated: Mutex<Vec<ThoughtId>>,
|
updated: Mutex<Vec<ThoughtId>>,
|
||||||
announced: Mutex<Vec<String>>,
|
announced: Mutex<Vec<String>>,
|
||||||
undo_announced: Mutex<Vec<String>>,
|
undo_announced: Mutex<Vec<String>>,
|
||||||
|
liked: Mutex<Vec<String>>,
|
||||||
|
undo_liked: Mutex<Vec<String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
@@ -287,6 +289,26 @@ mod tests {
|
|||||||
self.undo_announced.lock().unwrap().push(ap_id.to_string());
|
self.undo_announced.lock().unwrap().push(ap_id.to_string());
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn broadcast_like(
|
||||||
|
&self,
|
||||||
|
_: &UserId,
|
||||||
|
ap_id: &str,
|
||||||
|
_: &str,
|
||||||
|
) -> Result<(), DomainError> {
|
||||||
|
self.liked.lock().unwrap().push(ap_id.to_string());
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn broadcast_undo_like(
|
||||||
|
&self,
|
||||||
|
_: &UserId,
|
||||||
|
ap_id: &str,
|
||||||
|
_: &str,
|
||||||
|
) -> Result<(), DomainError> {
|
||||||
|
self.undo_liked.lock().unwrap().push(ap_id.to_string());
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn alice() -> User {
|
fn alice() -> User {
|
||||||
|
|||||||
@@ -453,4 +453,21 @@ pub trait OutboundFederationPort: Send + Sync {
|
|||||||
booster_user_id: &UserId,
|
booster_user_id: &UserId,
|
||||||
object_ap_id: &str,
|
object_ap_id: &str,
|
||||||
) -> Result<(), DomainError>;
|
) -> Result<(), DomainError>;
|
||||||
|
|
||||||
|
/// Send a Like activity to a remote thought author's inbox.
|
||||||
|
/// Only called when a LOCAL user likes a REMOTE thought (one with an ap_id).
|
||||||
|
async fn broadcast_like(
|
||||||
|
&self,
|
||||||
|
liker_user_id: &UserId,
|
||||||
|
object_ap_id: &str,
|
||||||
|
author_inbox_url: &str,
|
||||||
|
) -> Result<(), DomainError>;
|
||||||
|
|
||||||
|
/// Send Undo(Like) to a remote thought author's inbox.
|
||||||
|
async fn broadcast_undo_like(
|
||||||
|
&self,
|
||||||
|
liker_user_id: &UserId,
|
||||||
|
object_ap_id: &str,
|
||||||
|
author_inbox_url: &str,
|
||||||
|
) -> Result<(), DomainError>;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user