upub/src/activitypub/object.rs

17 lines
579 B
Rust
Raw Normal View History

use axum::{extract::{Path, State}, http::StatusCode, Json};
2024-03-20 08:56:35 +01:00
use sea_orm::EntityTrait;
2024-03-20 08:56:35 +01:00
use crate::{activitystream::Base, model::object, server::Context};
2024-03-20 08:56:35 +01:00
pub async fn view(State(ctx) : State<Context>, Path(id): Path<String>) -> Result<Json<serde_json::Value>, StatusCode> {
match object::Entity::find_by_id(ctx.object_uri(id)).one(ctx.db()).await {
Ok(Some(object)) => Ok(Json(object.underlying_json_object())),
Ok(None) => Err(StatusCode::NOT_FOUND),
Err(e) => {
tracing::error!("error querying for object: {e}");
Err(StatusCode::INTERNAL_SERVER_ERROR)
},
}
}