fix: FollowTarget enum — actor_url no longer lies about holding a handle

FollowCommand.target is now FollowTarget (Identity|Handle) instead of
SocialIdentity. actor_url field always holds a URL; handles go through
FollowTarget::Handle. Adapter resolves handles explicitly. Type system
prevents misuse in future commands.
This commit is contained in:
2026-07-10 16:18:57 +02:00
parent 2484f1e603
commit d60c47199c
18 changed files with 95 additions and 45 deletions

View File

@@ -22,7 +22,7 @@ use api_types::{
BlockedDomainResponse, FollowRequest, RemoteActorDto,
};
use application::social::deps::{SocialCommandDeps, SocialQueryDeps};
use domain::value_objects::{SocialActor, SocialIdentity};
use domain::value_objects::{FollowTarget, SocialActor, SocialIdentity};
use template_askama::{
BlockedActorsTemplate, BlockedDomainsTemplate, FollowersTemplate, FollowingTemplate,
RemoteActorData,
@@ -359,9 +359,7 @@ pub async fn follow(
&deps,
application::social::commands::FollowCommand {
follower_id: user.0.value(),
target: SocialIdentity::Remote {
actor_url: body.handle,
},
target: FollowTarget::Handle(body.handle),
},
)
.await?;
@@ -554,9 +552,7 @@ pub async fn follow_remote_user(
&deps,
application::social::commands::FollowCommand {
follower_id: user_id.value(),
target: SocialIdentity::Remote {
actor_url: form.handle,
},
target: FollowTarget::Handle(form.handle),
},
)
.await