feat: Implement WebFinger discovery and ActivityPub user actor endpoint
- Added a new router for handling well-known endpoints, specifically WebFinger. - Implemented the `webfinger` function to respond to WebFinger queries. - Created a new route for WebFinger in the router. - Refactored user retrieval logic to support both user ID and username in a single endpoint. - Updated user router to use the new `get_user_by_param` function. - Added tests for WebFinger discovery and ActivityPub user actor endpoint. - Updated dependencies in Cargo.toml files to include necessary libraries.
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
use axum::{body::Body, http::Request, response::Response, Router};
|
||||
use axum::{
|
||||
body::Body,
|
||||
http::{header, Request},
|
||||
response::Response,
|
||||
Router,
|
||||
};
|
||||
use tower::ServiceExt;
|
||||
|
||||
pub async fn make_get_request(app: Router, url: &str, user_id: Option<i32>) -> Response {
|
||||
@@ -68,3 +73,25 @@ pub async fn make_jwt_request(
|
||||
.await
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
pub async fn make_request_with_headers(
|
||||
app: Router,
|
||||
url: &str,
|
||||
method: &str,
|
||||
body: Option<String>,
|
||||
headers: Vec<(header::HeaderName, &str)>,
|
||||
) -> Response {
|
||||
let mut builder = Request::builder()
|
||||
.method(method)
|
||||
.uri(url)
|
||||
.header("Content-Type", "application/json");
|
||||
|
||||
for (key, value) in headers {
|
||||
builder = builder.header(key, value);
|
||||
}
|
||||
|
||||
let request_body = body.unwrap_or_default();
|
||||
app.oneshot(builder.body(Body::from(request_body)).unwrap())
|
||||
.await
|
||||
.unwrap()
|
||||
}
|
||||
|
@@ -1,5 +1,8 @@
|
||||
mod api;
|
||||
mod db;
|
||||
|
||||
pub use api::{make_delete_request, make_get_request, make_jwt_request, make_post_request};
|
||||
pub use api::{
|
||||
make_delete_request, make_get_request, make_jwt_request, make_post_request,
|
||||
make_request_with_headers,
|
||||
};
|
||||
pub use db::setup_test_db;
|
||||
|
Reference in New Issue
Block a user