alemi
45d16fa0a3
it shows it in quite a jank way: inside the "audience" collections you find your id as only item. it's weird af but technically valid ap i think? will probably be replaced with a local api extension as soon as i read about those
31 lines
981 B
Rust
31 lines
981 B
Rust
use axum::{extract::{Query, State}, http::StatusCode, Json};
|
|
|
|
use crate::{errors::UpubError, routes::activitypub::{CreationResult, JsonLD, Pagination}, server::{auth::AuthIdentity, Context}, url};
|
|
|
|
pub async fn get(State(ctx): State<Context>) -> crate::Result<JsonLD<serde_json::Value>> {
|
|
crate::server::builders::collection(&url!(ctx, "/outbox"), None)
|
|
}
|
|
|
|
pub async fn page(
|
|
State(ctx): State<Context>,
|
|
Query(page): Query<Pagination>,
|
|
AuthIdentity(auth): AuthIdentity,
|
|
) -> crate::Result<JsonLD<serde_json::Value>> {
|
|
crate::server::builders::paginate(
|
|
url!(ctx, "/outbox/page"),
|
|
auth.filter_condition(), // TODO filter local only stuff
|
|
ctx.db(),
|
|
page,
|
|
auth.my_id(),
|
|
)
|
|
.await
|
|
}
|
|
|
|
pub async fn post(
|
|
State(_ctx): State<Context>,
|
|
AuthIdentity(_auth): AuthIdentity,
|
|
Json(_activity): Json<serde_json::Value>,
|
|
) -> Result<CreationResult, UpubError> {
|
|
// TODO administrative actions may be carried out against this outbox?
|
|
Err(StatusCode::NOT_IMPLEMENTED.into())
|
|
}
|