chore: update everything to work with utoipa

This commit is contained in:
Zomatree
2025-11-13 23:06:41 +00:00
parent 27ea7345ea
commit ac60b2c795
148 changed files with 1200 additions and 1117 deletions

View File

@@ -12,7 +12,7 @@ use validator::Validate;
/// # Ban User
///
/// Ban a user by their id.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[put("/<server>/bans/<target>", data = "<data>")]
pub async fn ban(
db: &State<Database>,

View File

@@ -12,7 +12,7 @@ use rocket::State;
/// # Fetch Bans
///
/// Fetch all bans on a server.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[get("/<target>/bans")]
pub async fn list(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket_empty::EmptyResponse;
/// # Unban user
///
/// Remove a user's ban.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[delete("/<server>/bans/<target>")]
pub async fn unban(
db: &State<Database>,

View File

@@ -11,7 +11,7 @@ use validator::Validate;
/// # Create Channel
///
/// Create a new Text or Voice channel.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[post("/<server>/channels", data = "<data>")]
pub async fn create_server_channel(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Server Emoji
///
/// Fetch all emoji on a server.
#[openapi(tag = "Server Customisation")]
#[utoipa::path(tag = "Server Customisation")]
#[get("/<target>/emojis")]
pub async fn list_emoji(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Invites
///
/// Fetch all server invites.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[get("/<target>/invites")]
pub async fn invites(
db: &State<Database>,

View File

@@ -14,7 +14,7 @@ use validator::Validate;
/// # Edit Member
///
/// Edit a member by their id.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[patch("/<server>/members/<member>", data = "<data>")]
pub async fn edit(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
use serde::{Deserialize, Serialize};
/// # Query Parameters
#[derive(Deserialize, JsonSchema, FromForm)]
#[derive(Deserialize, ToSchema, FromForm)]
pub struct OptionsQueryMembers {
/// String to search for
query: String,
@@ -20,7 +20,7 @@ pub struct OptionsQueryMembers {
}
/// # Query members by name
#[derive(Serialize, JsonSchema)]
#[derive(Serialize, ToSchema)]
pub struct MemberQueryResponse {
/// List of members
members: Vec<v0::Member>,
@@ -31,7 +31,7 @@ pub struct MemberQueryResponse {
/// # Query members by name
///
/// Query members by a given name, this API is not stable and will be removed in the future.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[get("/<target>/members_experimental_query?<options..>")]
pub async fn member_experimental_query(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Member
///
/// Retrieve a member.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[get("/<target>/members/<member>?<roles>")]
pub async fn fetch(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Members
///
/// Fetch all server members.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[get("/<target>/members?<options..>")]
pub async fn fetch_all(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket_empty::EmptyResponse;
/// # Kick Member
///
/// Removes a member from the server.
#[openapi(tag = "Server Members")]
#[utoipa::path(tag = "Server Members")]
#[delete("/<target>/members/<member>")]
pub async fn kick(
db: &State<Database>,

View File

@@ -1,4 +1,3 @@
use revolt_rocket_okapi::revolt_okapi::openapi3::OpenApi;
use rocket::Route;
mod ban_create;
@@ -25,8 +24,38 @@ mod server_delete;
mod server_edit;
mod server_fetch;
pub fn routes() -> (Vec<Route>, OpenApi) {
openapi_get_routes_spec![
#[derive(OpenApi)]
#[openapi(
paths(
server_create::create_server,
server_delete::delete,
server_fetch::fetch,
server_edit::edit,
server_ack::ack,
channel_create::create_server_channel,
member_fetch_all::fetch_all,
member_remove::kick,
member_fetch::fetch,
member_edit::edit,
member_experimental_query::member_experimental_query,
ban_create::ban,
ban_remove::unban,
ban_list::list,
invites_fetch::invites,
roles_create::create,
roles_edit::edit,
roles_fetch::fetch,
roles_delete::delete,
permissions_set::set_role_permission,
permissions_set_default::set_default_server_permissions,
emoji_list::list_emoji,
roles_edit_positions::edit_role_ranks
)
)]
pub struct ApiDoc;
pub fn routes() -> Vec<Route> {
routes![
server_create::create_server,
server_delete::delete,
server_fetch::fetch,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Set Role Permission
///
/// Sets permissions for the specified role in the server.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[put("/<target>/permissions/<role_id>", data = "<data>", rank = 2)]
pub async fn set_role_permission(
db: &State<Database>,

View File

@@ -12,7 +12,7 @@ use rocket::{serde::json::Json, State};
/// # Set Default Permission
///
/// Sets permissions for the default role in this server.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[put("/<target>/permissions/default", data = "<data>", rank = 1)]
pub async fn set_default_server_permissions(
db: &State<Database>,

View File

@@ -12,7 +12,7 @@ use validator::Validate;
/// # Create Role
///
/// Creates a new server role.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[post("/<target>/roles", data = "<data>")]
pub async fn create(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket_empty::EmptyResponse;
/// # Delete Role
///
/// Delete a server role by its id.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[delete("/<target>/roles/<role_id>")]
pub async fn delete(
db: &State<Database>,

View File

@@ -11,7 +11,7 @@ use validator::Validate;
/// # Edit Role
///
/// Edit a role by its id.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[patch("/<target>/roles/<role_id>", data = "<data>", rank = 1)]
pub async fn edit(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Edits server roles ranks
///
/// Edit's server role's ranks.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[patch("/<target>/roles/ranks", data = "<data>")]
pub async fn edit_role_ranks(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Role
///
/// Fetch a role by its id.
#[openapi(tag = "Server Permissions")]
#[utoipa::path(tag = "Server Permissions")]
#[get("/<target>/roles/<role_id>")]
pub async fn fetch(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket_empty::EmptyResponse;
/// # Mark Server As Read
///
/// Mark all channels in a server as read.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[put("/<target>/ack")]
pub async fn ack(db: &State<Database>, user: User, target: Reference<'_>) -> Result<EmptyResponse> {
if user.bot.is_some() {

View File

@@ -9,7 +9,7 @@ use validator::Validate;
/// # Create Server
///
/// Create a new server.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[post("/create", data = "<data>")]
pub async fn create_server(
db: &State<Database>,

View File

@@ -8,7 +8,7 @@ use rocket_empty::EmptyResponse;
/// # Delete / Leave Server
///
/// Deletes a server if owner otherwise leaves.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[delete("/<target>?<options..>")]
pub async fn delete(
db: &State<Database>,

View File

@@ -13,7 +13,7 @@ use validator::Validate;
/// # Edit Server
///
/// Edit a server by its id.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[patch("/<target>", data = "<data>")]
pub async fn edit(
db: &State<Database>,

View File

@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
/// # Fetch Server
///
/// Fetch a server by its id.
#[openapi(tag = "Server Information")]
#[utoipa::path(tag = "Server Information")]
#[get("/<target>?<options..>")]
pub async fn fetch(
db: &State<Database>,