Compare commits

...

2 commits

Author SHA1 Message Date
949da91cb7
astreams: Create crate 2024-12-16 04:25:12 +01:00
d5064a2c14
apub_inbox: Add /inbox route 2024-12-16 02:56:44 +01:00
11 changed files with 72 additions and 3 deletions

View file

@ -13,6 +13,7 @@
<sourceFolder url="file://$MODULE_DIR$/acrate_rdserver/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/acrate_apub_inbox/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/acrate_database/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/acrate_astreams/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />

View file

@ -1,3 +1,3 @@
[workspace]
resolver = "2"
members = ["acrate_database", "acrate_rd", "acrate_nodeinfo", "acrate_rdserver", "acrate_apub_inbox"]
members = ["acrate_database", "acrate_rd", "acrate_nodeinfo", "acrate_rdserver", "acrate_apub_inbox", "acrate_astreams"]

View file

@ -16,6 +16,7 @@ async fn main() -> anyhow::Result<std::convert::Infallible> {
log::trace!("Creating Axum router...");
let app = axum::Router::new()
.route("/inbox", axum::routing::post(route::inbox_handler))
.route("/.healthcheck", axum::routing::get(route::healthcheck_handler))
.layer(Extension(Arc::new(mj)));
log::trace!("Axum router created successfully!");

View file

@ -1,4 +1,4 @@
use axum::http::StatusCode;
use axum::http::{Response, StatusCode};
use acrate_database::connect::connect_async;
pub async fn healthcheck_handler() -> Result<StatusCode, StatusCode> {
@ -12,3 +12,12 @@ pub async fn healthcheck_handler() -> Result<StatusCode, StatusCode> {
log::trace!("Healthcheck successful! Everything's fine!");
Ok(StatusCode::NO_CONTENT)
}
pub async fn inbox_handler() -> Result<Response<String>, StatusCode> {
log::debug!("Handling an inbox request!");
log::trace!("Creating a blank response...");
let mut response = Response::new("".to_string());
Ok(response)
}

View file

@ -0,0 +1,17 @@
[package]
name = "acrate_astreams"
version = "0.3.0"
authors = ["Stefano Pigozzi <me@steffo.eu>"]
edition = "2021"
description = "ActivityStreams definitions and utilities"
repository = "https://forge.steffo.eu/unimore/tirocinio-canali-steffo-acrate"
license = "EUPL-1.2"
keywords = ["activitypub", "activitystreams", "federation", "apub", "astreams"]
categories = ["web-programming"]
[dependencies]
json-ld = { version = "0.21.1", features = ["serde", "reqwest"] }
log = "0.4.22"
serde = { version = "1.0.214", features = ["derive"] }
serde_json = "1.0.132"
thiserror = "2.0.3"

View file

@ -0,0 +1,6 @@
//! Struct definitions for ActivityStreams Core Types.
//!
//! # Specification
//!
//! - <https://www.w3.org/TR/activitystreams-vocabulary/#types>

View file

@ -0,0 +1,6 @@
//! Struct definitions for ActivityStreams Extended Types.
//!
//! # Specification
//!
//! - <https://www.w3.org/TR/activitystreams-vocabulary/#extendedtypes>

View file

@ -0,0 +1,11 @@
//!
//! # Specification
//!
//! - <https://www.w3.org/TR/activitystreams-vocabulary/>
pub mod core;
pub mod extended;
pub mod mastodon;
pub mod miajetzt;
pub mod litepub;

View file

@ -0,0 +1,6 @@
//! Struct definitions for Pleroma and Akkoma's Extension Types.
//!
//! # Specification
//!
//! - <https://docs.akkoma.dev/develop/development/ap_extensions/>

View file

@ -0,0 +1,6 @@
//! Struct definitions for Mastodon's Extension Types.
//!
//! # Specification
//!
//! - <https://docs.joinmastodon.org/spec/activitypub/#contexts>

View file

@ -0,0 +1,6 @@
//! Struct definitions for mia's Extension Types.
//!
//! # Specification
//!
//! - <https://ns.mia.jetzt/as/>