feat: listed half of mastodon's api routes
This commit is contained in:
parent
ca871a867f
commit
a624222751
4 changed files with 74 additions and 0 deletions
|
@ -32,3 +32,4 @@ sha256 = "1.5.0"
|
||||||
openssl = "0.10.64"
|
openssl = "0.10.64"
|
||||||
base64 = "0.22.0"
|
base64 = "0.22.0"
|
||||||
http-signature-normalization = "0.7.0"
|
http-signature-normalization = "0.7.0"
|
||||||
|
mastodon-async-entities = "1.1.0"
|
||||||
|
|
|
@ -8,6 +8,7 @@ mod errors;
|
||||||
mod auth;
|
mod auth;
|
||||||
mod dispatcher;
|
mod dispatcher;
|
||||||
mod fetcher;
|
mod fetcher;
|
||||||
|
mod mastodon;
|
||||||
|
|
||||||
use clap::{Parser, Subcommand};
|
use clap::{Parser, Subcommand};
|
||||||
use sea_orm::{ConnectOptions, Database, EntityTrait, IntoActiveModel};
|
use sea_orm::{ConnectOptions, Database, EntityTrait, IntoActiveModel};
|
||||||
|
|
3
src/mastodon/README.md
Normal file
3
src/mastodon/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# mastodon
|
||||||
|
|
||||||
|
here live the Mastodon API routes for this application
|
69
src/mastodon/mod.rs
Normal file
69
src/mastodon/mod.rs
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
use axum::{http::StatusCode, routing::{delete, get, patch, post}, Router};
|
||||||
|
use crate::server::Context;
|
||||||
|
|
||||||
|
#[allow(unused)]
|
||||||
|
async fn todo() -> StatusCode { StatusCode::NOT_IMPLEMENTED }
|
||||||
|
|
||||||
|
#[allow(unused)]
|
||||||
|
pub async fn mastodon_api_routes(router: Router<Context>) -> Router<Context> {
|
||||||
|
router.nest(
|
||||||
|
// TODO Oauth is just under /oauth
|
||||||
|
"/api/v1", Router::new()
|
||||||
|
.route("/apps", post(todo)) // create an application
|
||||||
|
.route("/apps/verify_credentials", post(todo)) // confirm that the app's oauth2 credentials work
|
||||||
|
.route("/emails/confirmations", post(todo))
|
||||||
|
.route("/accounts", post(todo))
|
||||||
|
.route("/accounts/verify_credentials", get(todo))
|
||||||
|
.route("/accounts/update_credentials", patch(todo))
|
||||||
|
.route("/accounts/:id", get(todo))
|
||||||
|
.route("/accounts/:id/statuses", get(todo))
|
||||||
|
.route("/accounts/:id/followers", get(todo))
|
||||||
|
.route("/accounts/:id/following", get(todo))
|
||||||
|
.route("/accounts/:id/featured_tags", get(todo))
|
||||||
|
.route("/accounts/:id/lists", get(todo))
|
||||||
|
.route("/accounts/:id/follow", post(todo))
|
||||||
|
.route("/accounts/:id/unfollow", post(todo))
|
||||||
|
.route("/accounts/:id/remove_from_followers", post(todo))
|
||||||
|
.route("/accounts/:id/block", post(todo))
|
||||||
|
.route("/accounts/:id/unblock", post(todo))
|
||||||
|
.route("/accounts/:id/mute", post(todo))
|
||||||
|
.route("/accounts/:id/unmute", post(todo))
|
||||||
|
.route("/accounts/:id/pin", post(todo))
|
||||||
|
.route("/accounts/:id/unpin", post(todo))
|
||||||
|
.route("/accounts/:id/note", post(todo))
|
||||||
|
.route("/accounts/relationships", get(todo))
|
||||||
|
.route("/accounts/familiar_followers", get(todo))
|
||||||
|
.route("/accounts/search", get(todo))
|
||||||
|
.route("/accounts/lookup", get(todo))
|
||||||
|
.route("/accounts/:id/identity_proofs", get(todo))
|
||||||
|
.route("/bookmarks", get(todo))
|
||||||
|
.route("/favourites", get(todo))
|
||||||
|
.route("/mutes", get(todo))
|
||||||
|
.route("/blocks", get(todo))
|
||||||
|
.route("/domain_blocks", get(todo))
|
||||||
|
.route("/domain_blocks", post(todo))
|
||||||
|
.route("/domain_blocks", delete(todo))
|
||||||
|
// TODO filters! api v2
|
||||||
|
.route("/reports", post(todo))
|
||||||
|
.route("/follow_requests", get(todo))
|
||||||
|
.route("/follow_requests/:account_id/authorize", get(todo))
|
||||||
|
.route("/follow_requests/:account_id/reject", get(todo))
|
||||||
|
.route("/endorsements", get(todo))
|
||||||
|
.route("/featured_tags", get(todo))
|
||||||
|
.route("/featured_tags", post(todo))
|
||||||
|
.route("/featured_tags/:id", delete(todo))
|
||||||
|
.route("/featured_tags/suggestions", get(todo))
|
||||||
|
.route("/preferences", get(todo))
|
||||||
|
.route("/followed_tags", get(todo))
|
||||||
|
// TODO suggestions! api v2
|
||||||
|
.route("/suggestions", get(todo))
|
||||||
|
.route("/suggestions/:account_id", delete(todo))
|
||||||
|
.route("/tags/:id", get(todo))
|
||||||
|
.route("/tags/:id/follow", post(todo))
|
||||||
|
.route("/tags/:id/unfollow", post(todo))
|
||||||
|
.route("/profile/avatar", delete(todo))
|
||||||
|
.route("/profile/header", delete(todo))
|
||||||
|
.route("/statuses", post(todo))
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in a new issue