-#[async_trait::async_trait]
-impl PerformApub for ResolveObject {
- type Response = ResolveObjectResponse;
+#[tracing::instrument(skip(context))]
+pub async fn resolve_object(
+ data: Query<ResolveObject>,
+ context: Data<LemmyContext>,
+) -> Result<Json<ResolveObjectResponse>, LemmyError> {
+ let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), &context).await;
+ let local_site = LocalSite::read(&mut context.pool()).await?;
+ check_private_instance(&local_user_view, &local_site)?;
+ let person_id = local_user_view.map(|v| v.person.id);
+ // If we get a valid personId back we can safely assume that the user is authenticated,
+ // if there's no personId then the JWT was missing or invalid.
+ let is_authenticated = person_id.is_some();