feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready #1
@@ -32,7 +32,16 @@ pub async fn get_user(
|
|||||||
OptionalAuthUser(viewer): OptionalAuthUser,
|
OptionalAuthUser(viewer): OptionalAuthUser,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
) -> Result<Response, ApiError> {
|
) -> Result<Response, ApiError> {
|
||||||
let user = get_user_by_username(&*s.users, &username).await?;
|
// AP actor URLs use the user's UUID (e.g. /users/{uuid}). Fall back to UUID lookup
|
||||||
|
// so remote servers can fetch the actor JSON for HTTP signature verification.
|
||||||
|
let user = if let Ok(uuid) = uuid::Uuid::parse_str(&username) {
|
||||||
|
s.users
|
||||||
|
.find_by_id(&domain::value_objects::UserId::from_uuid(uuid))
|
||||||
|
.await?
|
||||||
|
.ok_or(ApiError::Domain(domain::errors::DomainError::NotFound))?
|
||||||
|
} else {
|
||||||
|
get_user_by_username(&*s.users, &username).await?
|
||||||
|
};
|
||||||
|
|
||||||
let accept = headers
|
let accept = headers
|
||||||
.get(header::ACCEPT)
|
.get(header::ACCEPT)
|
||||||
|
|||||||
Reference in New Issue
Block a user