From 7780aa69c099ddcc2c19c231c85d31e1554af931 Mon Sep 17 00:00:00 2001 From: Zomatree Date: Tue, 18 Nov 2025 14:57:34 +0000 Subject: [PATCH] fix: manually specify params --- crates/core/database/src/util/reference.rs | 20 ------------ crates/core/database/src/util/utoipa.rs | 32 +++++++++++++++++-- .../delta/src/routes/channels/channel_ack.rs | 4 +++ .../src/routes/channels/channel_delete.rs | 5 ++- .../delta/src/routes/channels/channel_edit.rs | 3 ++ .../src/routes/channels/channel_fetch.rs | 3 ++ .../src/routes/channels/group_add_member.rs | 4 +++ .../routes/channels/group_remove_member.rs | 4 +++ .../src/routes/channels/invite_create.rs | 3 ++ .../src/routes/channels/members_fetch.rs | 3 ++ .../routes/channels/message_bulk_delete.rs | 3 ++ .../channels/message_clear_reactions.rs | 4 +++ .../src/routes/channels/message_delete.rs | 4 +++ .../delta/src/routes/channels/message_edit.rs | 4 +++ .../src/routes/channels/message_fetch.rs | 4 +++ .../delta/src/routes/channels/message_pin.rs | 4 +++ .../src/routes/channels/message_query.rs | 5 ++- .../src/routes/channels/message_react.rs | 5 +++ .../src/routes/channels/message_search.rs | 3 ++ .../delta/src/routes/channels/message_send.rs | 3 ++ .../src/routes/channels/message_unpin.rs | 4 +++ .../src/routes/channels/message_unreact.rs | 7 +++- .../src/routes/channels/permissions_set.rs | 4 +++ .../channels/permissions_set_default.rs | 3 ++ .../delta/src/routes/channels/voice_join.rs | 3 ++ .../src/routes/channels/voice_stop_ring.rs | 4 +++ .../src/routes/channels/webhook_create.rs | 3 ++ .../src/routes/channels/webhook_fetch_all.rs | 3 ++ .../src/routes/customisation/emoji_create.rs | 5 ++- .../src/routes/customisation/emoji_delete.rs | 3 ++ .../src/routes/customisation/emoji_fetch.rs | 3 ++ .../delta/src/routes/invites/invite_delete.rs | 3 ++ .../delta/src/routes/invites/invite_fetch.rs | 3 ++ .../delta/src/routes/invites/invite_join.rs | 3 ++ crates/delta/src/routes/mod.rs | 7 +++- crates/delta/src/routes/servers/ban_create.rs | 4 +++ crates/delta/src/routes/servers/ban_list.rs | 3 ++ crates/delta/src/routes/servers/ban_remove.rs | 4 +++ .../src/routes/servers/channel_create.rs | 3 ++ crates/delta/src/routes/servers/emoji_list.rs | 3 ++ .../delta/src/routes/servers/invites_fetch.rs | 3 ++ .../delta/src/routes/servers/member_edit.rs | 4 +++ .../servers/member_experimental_query.rs | 5 ++- .../delta/src/routes/servers/member_fetch.rs | 2 ++ .../src/routes/servers/member_fetch_all.rs | 5 ++- .../delta/src/routes/servers/member_remove.rs | 4 +++ .../src/routes/servers/permissions_set.rs | 4 +++ .../routes/servers/permissions_set_default.rs | 3 ++ .../delta/src/routes/servers/roles_create.rs | 3 ++ .../delta/src/routes/servers/roles_delete.rs | 4 +++ crates/delta/src/routes/servers/roles_edit.rs | 4 +++ .../routes/servers/roles_edit_positions.rs | 3 ++ .../delta/src/routes/servers/roles_fetch.rs | 4 +++ crates/delta/src/routes/servers/server_ack.rs | 3 ++ .../delta/src/routes/servers/server_delete.rs | 5 ++- .../delta/src/routes/servers/server_edit.rs | 3 ++ .../delta/src/routes/servers/server_fetch.rs | 5 ++- crates/delta/src/routes/users/add_friend.rs | 3 ++ crates/delta/src/routes/users/block_user.rs | 3 ++ crates/delta/src/routes/users/edit_user.rs | 3 ++ .../delta/src/routes/users/fetch_profile.rs | 3 ++ crates/delta/src/routes/users/fetch_user.rs | 3 ++ .../src/routes/users/fetch_user_flags.rs | 3 ++ crates/delta/src/routes/users/find_mutual.rs | 3 ++ .../src/routes/users/get_default_avatar.rs | 4 +++ crates/delta/src/routes/users/open_dm.rs | 3 ++ .../delta/src/routes/users/remove_friend.rs | 3 ++ crates/delta/src/routes/users/unblock_user.rs | 3 ++ .../src/routes/webhooks/webhook_delete.rs | 3 ++ .../routes/webhooks/webhook_delete_token.rs | 4 +++ .../delta/src/routes/webhooks/webhook_edit.rs | 3 ++ .../src/routes/webhooks/webhook_edit_token.rs | 4 +++ .../src/routes/webhooks/webhook_execute.rs | 6 +++- .../routes/webhooks/webhook_execute_github.rs | 11 ++++++- .../src/routes/webhooks/webhook_fetch.rs | 3 ++ .../routes/webhooks/webhook_fetch_token.rs | 4 +++ 76 files changed, 298 insertions(+), 33 deletions(-) diff --git a/crates/core/database/src/util/reference.rs b/crates/core/database/src/util/reference.rs index 65b04e0e..363113d3 100644 --- a/crates/core/database/src/util/reference.rs +++ b/crates/core/database/src/util/reference.rs @@ -3,14 +3,6 @@ use std::str::FromStr; use revolt_result::Result; #[cfg(feature = "rocket-impl")] use rocket::request::FromParam; -#[cfg(feature = "utoipa")] -use utoipa::{ - openapi::{ - path::{Parameter, ParameterBuilder, ParameterIn}, - Required, - }, - IntoParams, -}; use crate::{ Bot, Channel, Database, Emoji, Invite, Member, Message, Server, ServerBan, User, Webhook, @@ -115,15 +107,3 @@ impl<'r> FromParam<'r> for Reference<'r> { Ok(Reference::from_unchecked(param)) } } - -#[cfg(feature = "utoipa")] -impl IntoParams for Reference<'_> { - fn into_params(parameter_in_provider: impl Fn() -> Option) -> Vec { - vec![ParameterBuilder::new() - .name("id") - .required(Required::True) - .description(Some("An ID".to_string())) - .parameter_in(parameter_in_provider().unwrap_or_default()) - .build()] - } -} diff --git a/crates/core/database/src/util/utoipa.rs b/crates/core/database/src/util/utoipa.rs index ef3413cd..227d84d0 100644 --- a/crates/core/database/src/util/utoipa.rs +++ b/crates/core/database/src/util/utoipa.rs @@ -1,4 +1,13 @@ -use utoipa::{Modify, openapi::{OpenApi, security::{ApiKey, ApiKeyValue, SecurityScheme}}}; +use utoipa::{ + openapi::{ + schema::SchemaType, + security::{ApiKey, ApiKeyValue, SecurityScheme}, + ObjectBuilder, OpenApi, RefOr, Schema, Type, + }, + Modify, PartialSchema, ToSchema, +}; + +use crate::util::reference::Reference; pub struct TokenSecurity; @@ -18,4 +27,23 @@ impl Modify for TokenSecurity { SecurityScheme::ApiKey(ApiKey::Header(ApiKeyValue::new("X-Bot-Ticket".to_string()))), ); } -} \ No newline at end of file +} + +impl ToSchema for Reference<'_> { + fn name() -> std::borrow::Cow<'static, str> { + std::borrow::Cow::Borrowed("Reference") + } +} + +impl PartialSchema for Reference<'_> { + fn schema() -> RefOr { + RefOr::T( + ObjectBuilder::new() + .description(Some("An id referencing a stoat model.")) + .schema_type(SchemaType::Type(Type::String)) + .examples(["01FD58YK5W7QRV5H3D64KTQYX3"]) + .build() + .into(), + ) + } +} diff --git a/crates/delta/src/routes/channels/channel_ack.rs b/crates/delta/src/routes/channels/channel_ack.rs index 713910c7..6f7667e5 100644 --- a/crates/delta/src/routes/channels/channel_ack.rs +++ b/crates/delta/src/routes/channels/channel_ack.rs @@ -13,6 +13,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Messaging", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ("message" = Reference, Path), + ), responses( (status = 204) ) diff --git a/crates/delta/src/routes/channels/channel_delete.rs b/crates/delta/src/routes/channels/channel_delete.rs index ae076ba9..415e81a6 100644 --- a/crates/delta/src/routes/channels/channel_delete.rs +++ b/crates/delta/src/routes/channels/channel_delete.rs @@ -15,7 +15,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Channel Information", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsChannelDelete), + params( + ("target" = Reference, Path), + v0::OptionsChannelDelete, + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/channel_edit.rs b/crates/delta/src/routes/channels/channel_edit.rs index 395c5cd8..63e0678c 100644 --- a/crates/delta/src/routes/channels/channel_edit.rs +++ b/crates/delta/src/routes/channels/channel_edit.rs @@ -15,6 +15,9 @@ use validator::Validate; #[utoipa::path( tag = "Channel Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/channels/channel_fetch.rs b/crates/delta/src/routes/channels/channel_fetch.rs index c183e281..09bc8e8e 100644 --- a/crates/delta/src/routes/channels/channel_fetch.rs +++ b/crates/delta/src/routes/channels/channel_fetch.rs @@ -14,6 +14,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Channel Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/channels/group_add_member.rs b/crates/delta/src/routes/channels/group_add_member.rs index 677de4f5..0f467042 100644 --- a/crates/delta/src/routes/channels/group_add_member.rs +++ b/crates/delta/src/routes/channels/group_add_member.rs @@ -14,6 +14,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Groups", security(("Session-Token" = [])), + params( + ("group_id" = Reference, Path), + ("member_id" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/group_remove_member.rs b/crates/delta/src/routes/channels/group_remove_member.rs index dab6c45d..7ec91e34 100644 --- a/crates/delta/src/routes/channels/group_remove_member.rs +++ b/crates/delta/src/routes/channels/group_remove_member.rs @@ -15,6 +15,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Groups", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ("member" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/invite_create.rs b/crates/delta/src/routes/channels/invite_create.rs index 31427caa..dd90292f 100644 --- a/crates/delta/src/routes/channels/invite_create.rs +++ b/crates/delta/src/routes/channels/invite_create.rs @@ -16,6 +16,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Channel Invites", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Invite), ), diff --git a/crates/delta/src/routes/channels/members_fetch.rs b/crates/delta/src/routes/channels/members_fetch.rs index 7f5e4e21..a6943915 100644 --- a/crates/delta/src/routes/channels/members_fetch.rs +++ b/crates/delta/src/routes/channels/members_fetch.rs @@ -15,6 +15,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Groups", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = Vec), ), diff --git a/crates/delta/src/routes/channels/message_bulk_delete.rs b/crates/delta/src/routes/channels/message_bulk_delete.rs index 6d32cb35..31884858 100644 --- a/crates/delta/src/routes/channels/message_bulk_delete.rs +++ b/crates/delta/src/routes/channels/message_bulk_delete.rs @@ -20,6 +20,9 @@ use validator::Validate; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_clear_reactions.rs b/crates/delta/src/routes/channels/message_clear_reactions.rs index 1fd0141e..2ad66602 100644 --- a/crates/delta/src/routes/channels/message_clear_reactions.rs +++ b/crates/delta/src/routes/channels/message_clear_reactions.rs @@ -15,6 +15,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Interactions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_delete.rs b/crates/delta/src/routes/channels/message_delete.rs index 2dddff81..4e9e3e3e 100644 --- a/crates/delta/src/routes/channels/message_delete.rs +++ b/crates/delta/src/routes/channels/message_delete.rs @@ -13,6 +13,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_edit.rs b/crates/delta/src/routes/channels/message_edit.rs index 7352f7e5..0a6ac4b5 100644 --- a/crates/delta/src/routes/channels/message_edit.rs +++ b/crates/delta/src/routes/channels/message_edit.rs @@ -16,6 +16,10 @@ use validator::Validate; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 200, body = v0::Message), ), diff --git a/crates/delta/src/routes/channels/message_fetch.rs b/crates/delta/src/routes/channels/message_fetch.rs index 10ecaa6a..88e69ca4 100644 --- a/crates/delta/src/routes/channels/message_fetch.rs +++ b/crates/delta/src/routes/channels/message_fetch.rs @@ -13,6 +13,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 200, body = v0::Message), ), diff --git a/crates/delta/src/routes/channels/message_pin.rs b/crates/delta/src/routes/channels/message_pin.rs index 683c2753..80d64d91 100644 --- a/crates/delta/src/routes/channels/message_pin.rs +++ b/crates/delta/src/routes/channels/message_pin.rs @@ -14,6 +14,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_query.rs b/crates/delta/src/routes/channels/message_query.rs index b9df3074..9f2bbc7e 100644 --- a/crates/delta/src/routes/channels/message_query.rs +++ b/crates/delta/src/routes/channels/message_query.rs @@ -14,7 +14,10 @@ use validator::Validate; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsQueryMessages), + params( + ("target" = Reference, Path), + v0::OptionsQueryMessages, + ), responses( (status = 200, body = v0::BulkMessageResponse), ), diff --git a/crates/delta/src/routes/channels/message_react.rs b/crates/delta/src/routes/channels/message_react.rs index 983c0d76..c420e53d 100644 --- a/crates/delta/src/routes/channels/message_react.rs +++ b/crates/delta/src/routes/channels/message_react.rs @@ -13,6 +13,11 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Interactions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ("emoji" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_search.rs b/crates/delta/src/routes/channels/message_search.rs index b0d8730d..f9c86d6b 100644 --- a/crates/delta/src/routes/channels/message_search.rs +++ b/crates/delta/src/routes/channels/message_search.rs @@ -14,6 +14,9 @@ use validator::Validate; #[utoipa::path( tag = "Messaging", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::BulkMessageResponse), ), diff --git a/crates/delta/src/routes/channels/message_send.rs b/crates/delta/src/routes/channels/message_send.rs index 6168450e..5ed16aba 100644 --- a/crates/delta/src/routes/channels/message_send.rs +++ b/crates/delta/src/routes/channels/message_send.rs @@ -19,6 +19,9 @@ use validator::Validate; tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), params(IdempotencyKey), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Message), ), diff --git a/crates/delta/src/routes/channels/message_unpin.rs b/crates/delta/src/routes/channels/message_unpin.rs index 24104a9a..47d54491 100644 --- a/crates/delta/src/routes/channels/message_unpin.rs +++ b/crates/delta/src/routes/channels/message_unpin.rs @@ -14,6 +14,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/message_unreact.rs b/crates/delta/src/routes/channels/message_unreact.rs index a8a12618..7c34003c 100644 --- a/crates/delta/src/routes/channels/message_unreact.rs +++ b/crates/delta/src/routes/channels/message_unreact.rs @@ -16,7 +16,12 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Interactions", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsUnreact), + params( + ("target" = Reference, Path), + ("msg" = Reference, Path), + ("emoji" = Reference, Path), + v0::OptionsUnreact, + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/permissions_set.rs b/crates/delta/src/routes/channels/permissions_set.rs index 032eb0f0..12c98884 100644 --- a/crates/delta/src/routes/channels/permissions_set.rs +++ b/crates/delta/src/routes/channels/permissions_set.rs @@ -14,6 +14,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Channel Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("role_id" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/channels/permissions_set_default.rs b/crates/delta/src/routes/channels/permissions_set_default.rs index c8f2b806..59d464d0 100644 --- a/crates/delta/src/routes/channels/permissions_set_default.rs +++ b/crates/delta/src/routes/channels/permissions_set_default.rs @@ -14,6 +14,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Channel Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/channels/voice_join.rs b/crates/delta/src/routes/channels/voice_join.rs index 535459b5..6e173fd6 100644 --- a/crates/delta/src/routes/channels/voice_join.rs +++ b/crates/delta/src/routes/channels/voice_join.rs @@ -19,6 +19,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Voice", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::DataJoinCall), ), diff --git a/crates/delta/src/routes/channels/voice_stop_ring.rs b/crates/delta/src/routes/channels/voice_stop_ring.rs index 8253c863..9e357a18 100644 --- a/crates/delta/src/routes/channels/voice_stop_ring.rs +++ b/crates/delta/src/routes/channels/voice_stop_ring.rs @@ -17,6 +17,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Voice", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("target_user." = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/channels/webhook_create.rs b/crates/delta/src/routes/channels/webhook_create.rs index 3602a06e..b6e2685c 100644 --- a/crates/delta/src/routes/channels/webhook_create.rs +++ b/crates/delta/src/routes/channels/webhook_create.rs @@ -17,6 +17,9 @@ use validator::Validate; #[utoipa::path( tag = "Webhooks", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Webhook), ), diff --git a/crates/delta/src/routes/channels/webhook_fetch_all.rs b/crates/delta/src/routes/channels/webhook_fetch_all.rs index 449f6abf..cb399854 100644 --- a/crates/delta/src/routes/channels/webhook_fetch_all.rs +++ b/crates/delta/src/routes/channels/webhook_fetch_all.rs @@ -13,6 +13,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Webhooks", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = Vec), ), diff --git a/crates/delta/src/routes/customisation/emoji_create.rs b/crates/delta/src/routes/customisation/emoji_create.rs index 700e9c05..3f1cbd08 100644 --- a/crates/delta/src/routes/customisation/emoji_create.rs +++ b/crates/delta/src/routes/customisation/emoji_create.rs @@ -1,5 +1,5 @@ use revolt_config::config; -use revolt_database::{util::permissions::DatabasePermissionQuery, Database, Emoji, File, User}; +use revolt_database::{Database, Emoji, File, User, util::{permissions::DatabasePermissionQuery, reference::Reference}}; use revolt_models::v0; use revolt_permissions::{calculate_server_permissions, ChannelPermission}; use revolt_result::{create_error, Result}; @@ -13,6 +13,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Emojis", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("id" = Reference, Path), + ), responses( (status = 200, body = v0::Emoji), ), diff --git a/crates/delta/src/routes/customisation/emoji_delete.rs b/crates/delta/src/routes/customisation/emoji_delete.rs index 19fe4ccb..b76f6879 100644 --- a/crates/delta/src/routes/customisation/emoji_delete.rs +++ b/crates/delta/src/routes/customisation/emoji_delete.rs @@ -14,6 +14,9 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Emojis", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("emoji_id" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/customisation/emoji_fetch.rs b/crates/delta/src/routes/customisation/emoji_fetch.rs index 1d7764a4..4a96cf70 100644 --- a/crates/delta/src/routes/customisation/emoji_fetch.rs +++ b/crates/delta/src/routes/customisation/emoji_fetch.rs @@ -10,6 +10,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Emojis", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("emoji_id" = Reference, Path), + ), responses( (status = 200, body = v0::Emoji), ), diff --git a/crates/delta/src/routes/invites/invite_delete.rs b/crates/delta/src/routes/invites/invite_delete.rs index a9e9e7a5..69195abd 100644 --- a/crates/delta/src/routes/invites/invite_delete.rs +++ b/crates/delta/src/routes/invites/invite_delete.rs @@ -13,6 +13,9 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Invites", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/invites/invite_fetch.rs b/crates/delta/src/routes/invites/invite_fetch.rs index 37e023f4..b2a2ccff 100644 --- a/crates/delta/src/routes/invites/invite_fetch.rs +++ b/crates/delta/src/routes/invites/invite_fetch.rs @@ -9,6 +9,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Invites", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::InviteResponse), ), diff --git a/crates/delta/src/routes/invites/invite_join.rs b/crates/delta/src/routes/invites/invite_join.rs index 908df38b..78637f4c 100644 --- a/crates/delta/src/routes/invites/invite_join.rs +++ b/crates/delta/src/routes/invites/invite_join.rs @@ -9,6 +9,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Invites", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::InviteJoinResponse), ), diff --git a/crates/delta/src/routes/mod.rs b/crates/delta/src/routes/mod.rs index 09396060..c4f6d73f 100644 --- a/crates/delta/src/routes/mod.rs +++ b/crates/delta/src/routes/mod.rs @@ -1,5 +1,5 @@ use revolt_config::Settings; -use revolt_database::util::utoipa::TokenSecurity; +use revolt_database::util::{utoipa::TokenSecurity, reference::Reference}; use revolt_result::ErrorAddon; pub use rocket::http::Status; pub use rocket::response::Redirect; @@ -235,6 +235,11 @@ pub fn mount(config: Settings, mut rocket: Rocket) -> Rocket { ), ), + components( + schemas( + Reference, + ) + ), modifiers( &Extensions, diff --git a/crates/delta/src/routes/servers/ban_create.rs b/crates/delta/src/routes/servers/ban_create.rs index 776c26b5..ede10cab 100644 --- a/crates/delta/src/routes/servers/ban_create.rs +++ b/crates/delta/src/routes/servers/ban_create.rs @@ -16,6 +16,10 @@ use validator::Validate; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("server" = Reference, Path), + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::ServerBan), ), diff --git a/crates/delta/src/routes/servers/ban_list.rs b/crates/delta/src/routes/servers/ban_list.rs index e6032dfc..b5e40041 100644 --- a/crates/delta/src/routes/servers/ban_list.rs +++ b/crates/delta/src/routes/servers/ban_list.rs @@ -15,6 +15,9 @@ use rocket::State; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::BanListResult), ), diff --git a/crates/delta/src/routes/servers/ban_remove.rs b/crates/delta/src/routes/servers/ban_remove.rs index 1850f3c1..6432b52b 100644 --- a/crates/delta/src/routes/servers/ban_remove.rs +++ b/crates/delta/src/routes/servers/ban_remove.rs @@ -13,6 +13,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("server" = Reference, Path), + ("target" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/servers/channel_create.rs b/crates/delta/src/routes/servers/channel_create.rs index 736ed42f..9a88906d 100644 --- a/crates/delta/src/routes/servers/channel_create.rs +++ b/crates/delta/src/routes/servers/channel_create.rs @@ -14,6 +14,9 @@ use validator::Validate; #[utoipa::path( tag = "Server Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("server" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/servers/emoji_list.rs b/crates/delta/src/routes/servers/emoji_list.rs index a7f09afb..cdcbc435 100644 --- a/crates/delta/src/routes/servers/emoji_list.rs +++ b/crates/delta/src/routes/servers/emoji_list.rs @@ -13,6 +13,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Customisation", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = Vec), ), diff --git a/crates/delta/src/routes/servers/invites_fetch.rs b/crates/delta/src/routes/servers/invites_fetch.rs index 612916c7..365dde0c 100644 --- a/crates/delta/src/routes/servers/invites_fetch.rs +++ b/crates/delta/src/routes/servers/invites_fetch.rs @@ -13,6 +13,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = Vec), ), diff --git a/crates/delta/src/routes/servers/member_edit.rs b/crates/delta/src/routes/servers/member_edit.rs index cdfc3bb6..df5a532f 100644 --- a/crates/delta/src/routes/servers/member_edit.rs +++ b/crates/delta/src/routes/servers/member_edit.rs @@ -28,6 +28,10 @@ use validator::Validate; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("server" = Reference, Path), + ("member" = Reference, Path), + ), responses( (status = 200, body = v0::Member), ), diff --git a/crates/delta/src/routes/servers/member_experimental_query.rs b/crates/delta/src/routes/servers/member_experimental_query.rs index 81420b42..5c4288e8 100644 --- a/crates/delta/src/routes/servers/member_experimental_query.rs +++ b/crates/delta/src/routes/servers/member_experimental_query.rs @@ -34,7 +34,10 @@ pub struct MemberQueryResponse { #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), - params(OptionsQueryMembers), + params( + ("target" = Reference, Path), + OptionsQueryMembers, + ), responses( (status = 200, body = MemberQueryResponse), ), diff --git a/crates/delta/src/routes/servers/member_fetch.rs b/crates/delta/src/routes/servers/member_fetch.rs index 6d5bcc43..bdd50628 100644 --- a/crates/delta/src/routes/servers/member_fetch.rs +++ b/crates/delta/src/routes/servers/member_fetch.rs @@ -14,6 +14,8 @@ use rocket::{serde::json::Json, State}; tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), params( + ("target" = Reference, Path), + ("member" = Reference, Path), ( "roles" = bool, Query, diff --git a/crates/delta/src/routes/servers/member_fetch_all.rs b/crates/delta/src/routes/servers/member_fetch_all.rs index bcfb5896..649987b6 100644 --- a/crates/delta/src/routes/servers/member_fetch_all.rs +++ b/crates/delta/src/routes/servers/member_fetch_all.rs @@ -13,7 +13,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsFetchAllMembers), + params( + ("target" = Reference, Path), + v0::OptionsFetchAllMembers + ), responses( (status = 200, body = v0::AllMemberResponse), ), diff --git a/crates/delta/src/routes/servers/member_remove.rs b/crates/delta/src/routes/servers/member_remove.rs index 3953f4a0..a4558142 100644 --- a/crates/delta/src/routes/servers/member_remove.rs +++ b/crates/delta/src/routes/servers/member_remove.rs @@ -14,6 +14,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Server Members", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("member" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/servers/permissions_set.rs b/crates/delta/src/routes/servers/permissions_set.rs index c2535062..cbb56c33 100644 --- a/crates/delta/src/routes/servers/permissions_set.rs +++ b/crates/delta/src/routes/servers/permissions_set.rs @@ -14,6 +14,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("role_id" = Reference, Path), + ), responses( (status = 200, body = v0::Server), ), diff --git a/crates/delta/src/routes/servers/permissions_set_default.rs b/crates/delta/src/routes/servers/permissions_set_default.rs index a967e91f..c6862526 100644 --- a/crates/delta/src/routes/servers/permissions_set_default.rs +++ b/crates/delta/src/routes/servers/permissions_set_default.rs @@ -14,6 +14,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Server), ), diff --git a/crates/delta/src/routes/servers/roles_create.rs b/crates/delta/src/routes/servers/roles_create.rs index dc1aec26..67540a4e 100644 --- a/crates/delta/src/routes/servers/roles_create.rs +++ b/crates/delta/src/routes/servers/roles_create.rs @@ -15,6 +15,9 @@ use validator::Validate; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::NewRoleResponse), ), diff --git a/crates/delta/src/routes/servers/roles_delete.rs b/crates/delta/src/routes/servers/roles_delete.rs index 270380d5..c9c722b8 100644 --- a/crates/delta/src/routes/servers/roles_delete.rs +++ b/crates/delta/src/routes/servers/roles_delete.rs @@ -14,6 +14,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("role_id" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/servers/roles_edit.rs b/crates/delta/src/routes/servers/roles_edit.rs index cd9f396b..a3c9fe6d 100644 --- a/crates/delta/src/routes/servers/roles_edit.rs +++ b/crates/delta/src/routes/servers/roles_edit.rs @@ -15,6 +15,10 @@ use validator::Validate; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("role_id" = Reference, Path), + ), responses( (status = 200, body = v0::Role), ), diff --git a/crates/delta/src/routes/servers/roles_edit_positions.rs b/crates/delta/src/routes/servers/roles_edit_positions.rs index 5a52ddee..aa5b5780 100644 --- a/crates/delta/src/routes/servers/roles_edit_positions.rs +++ b/crates/delta/src/routes/servers/roles_edit_positions.rs @@ -12,6 +12,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Server), ), diff --git a/crates/delta/src/routes/servers/roles_fetch.rs b/crates/delta/src/routes/servers/roles_fetch.rs index 2f4449bc..ceb55e31 100644 --- a/crates/delta/src/routes/servers/roles_fetch.rs +++ b/crates/delta/src/routes/servers/roles_fetch.rs @@ -13,6 +13,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ("role_id" = Reference, Path), + ), responses( (status = 200, body = v0::Role), ), diff --git a/crates/delta/src/routes/servers/server_ack.rs b/crates/delta/src/routes/servers/server_ack.rs index f8fcd6e1..a33b8e8e 100644 --- a/crates/delta/src/routes/servers/server_ack.rs +++ b/crates/delta/src/routes/servers/server_ack.rs @@ -13,6 +13,9 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/servers/server_delete.rs b/crates/delta/src/routes/servers/server_delete.rs index fd4be536..f222ac10 100644 --- a/crates/delta/src/routes/servers/server_delete.rs +++ b/crates/delta/src/routes/servers/server_delete.rs @@ -18,7 +18,10 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Server Permissions", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsServerDelete), + params( + ("target" = Reference, Path), + v0::OptionsServerDelete, + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/servers/server_edit.rs b/crates/delta/src/routes/servers/server_edit.rs index 44f037d2..42487d1a 100644 --- a/crates/delta/src/routes/servers/server_edit.rs +++ b/crates/delta/src/routes/servers/server_edit.rs @@ -16,6 +16,9 @@ use validator::Validate; #[utoipa::path( tag = "Server Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Server), ), diff --git a/crates/delta/src/routes/servers/server_fetch.rs b/crates/delta/src/routes/servers/server_fetch.rs index 28e838f9..20b6b39e 100644 --- a/crates/delta/src/routes/servers/server_fetch.rs +++ b/crates/delta/src/routes/servers/server_fetch.rs @@ -13,7 +13,10 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Server Information", security(("Session-Token" = []), ("Bot-Token" = [])), - params(v0::OptionsFetchServer), + params( + ("target" = Reference, Path), + v0::OptionsFetchServer + ), responses( (status = 200, body = v0::Server), ), diff --git a/crates/delta/src/routes/users/add_friend.rs b/crates/delta/src/routes/users/add_friend.rs index cdf4e6e7..b99eabb7 100644 --- a/crates/delta/src/routes/users/add_friend.rs +++ b/crates/delta/src/routes/users/add_friend.rs @@ -11,6 +11,9 @@ use rocket::State; #[utoipa::path( tag = "Relationships", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/users/block_user.rs b/crates/delta/src/routes/users/block_user.rs index 441c3426..153f6ae3 100644 --- a/crates/delta/src/routes/users/block_user.rs +++ b/crates/delta/src/routes/users/block_user.rs @@ -11,6 +11,9 @@ use rocket::State; #[utoipa::path( tag = "Relationships", security(("Session-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/users/edit_user.rs b/crates/delta/src/routes/users/edit_user.rs index 2809d1d6..94578d0e 100644 --- a/crates/delta/src/routes/users/edit_user.rs +++ b/crates/delta/src/routes/users/edit_user.rs @@ -12,6 +12,9 @@ use validator::Validate; #[utoipa::path( tag = "User Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/users/fetch_profile.rs b/crates/delta/src/routes/users/fetch_profile.rs index 38d78f9d..ccf82407 100644 --- a/crates/delta/src/routes/users/fetch_profile.rs +++ b/crates/delta/src/routes/users/fetch_profile.rs @@ -15,6 +15,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "User Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::UserProfile), ), diff --git a/crates/delta/src/routes/users/fetch_user.rs b/crates/delta/src/routes/users/fetch_user.rs index 545bc809..071d271c 100644 --- a/crates/delta/src/routes/users/fetch_user.rs +++ b/crates/delta/src/routes/users/fetch_user.rs @@ -14,6 +14,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "User Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path) + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/users/fetch_user_flags.rs b/crates/delta/src/routes/users/fetch_user_flags.rs index 853155df..922e5ff5 100644 --- a/crates/delta/src/routes/users/fetch_user_flags.rs +++ b/crates/delta/src/routes/users/fetch_user_flags.rs @@ -8,6 +8,9 @@ use rocket::{serde::json::Json, State}; /// Retrieve a user's flags. #[utoipa::path( tag = "User Information", + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::FlagResponse), ), diff --git a/crates/delta/src/routes/users/find_mutual.rs b/crates/delta/src/routes/users/find_mutual.rs index f35335ee..86f54c6e 100644 --- a/crates/delta/src/routes/users/find_mutual.rs +++ b/crates/delta/src/routes/users/find_mutual.rs @@ -14,6 +14,9 @@ use rocket::State; #[utoipa::path( tag = "User Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::MutualResponse), ), diff --git a/crates/delta/src/routes/users/get_default_avatar.rs b/crates/delta/src/routes/users/get_default_avatar.rs index 2203bd52..0a274550 100644 --- a/crates/delta/src/routes/users/get_default_avatar.rs +++ b/crates/delta/src/routes/users/get_default_avatar.rs @@ -1,3 +1,4 @@ +use revolt_database::util::reference::Reference; use rocket::http::ContentType; use rocket::response::{self, Responder}; use rocket::{Request, Response}; @@ -22,6 +23,9 @@ impl<'r> Responder<'r, 'static> for CachedFile { #[utoipa::path( tag = "User Information", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( ( status = 200, diff --git a/crates/delta/src/routes/users/open_dm.rs b/crates/delta/src/routes/users/open_dm.rs index 290be61e..62b19734 100644 --- a/crates/delta/src/routes/users/open_dm.rs +++ b/crates/delta/src/routes/users/open_dm.rs @@ -15,6 +15,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Direct Messaging", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::Channel), ), diff --git a/crates/delta/src/routes/users/remove_friend.rs b/crates/delta/src/routes/users/remove_friend.rs index f746cd52..824a64a1 100644 --- a/crates/delta/src/routes/users/remove_friend.rs +++ b/crates/delta/src/routes/users/remove_friend.rs @@ -11,6 +11,9 @@ use rocket::State; #[utoipa::path( tag = "Relationships", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/users/unblock_user.rs b/crates/delta/src/routes/users/unblock_user.rs index e8829a37..550d31e7 100644 --- a/crates/delta/src/routes/users/unblock_user.rs +++ b/crates/delta/src/routes/users/unblock_user.rs @@ -11,6 +11,9 @@ use rocket::State; #[utoipa::path( tag = "Relationships", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("target" = Reference, Path), + ), responses( (status = 200, body = v0::User), ), diff --git a/crates/delta/src/routes/webhooks/webhook_delete.rs b/crates/delta/src/routes/webhooks/webhook_delete.rs index 40518cf4..de79c6b9 100644 --- a/crates/delta/src/routes/webhooks/webhook_delete.rs +++ b/crates/delta/src/routes/webhooks/webhook_delete.rs @@ -13,6 +13,9 @@ use rocket_empty::EmptyResponse; #[utoipa::path( tag = "Webhooks", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("webhook_id" = Reference, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/webhooks/webhook_delete_token.rs b/crates/delta/src/routes/webhooks/webhook_delete_token.rs index dd036a28..f3cb3952 100644 --- a/crates/delta/src/routes/webhooks/webhook_delete_token.rs +++ b/crates/delta/src/routes/webhooks/webhook_delete_token.rs @@ -8,6 +8,10 @@ use rocket_empty::EmptyResponse; /// Deletes a webhook with a token #[utoipa::path( tag = "Webhooks", + params( + ("webhook_id" = Reference, Path), + ("token" = String, Path), + ), responses( (status = 204), ), diff --git a/crates/delta/src/routes/webhooks/webhook_edit.rs b/crates/delta/src/routes/webhooks/webhook_edit.rs index 1ca603e8..1e2cf99c 100644 --- a/crates/delta/src/routes/webhooks/webhook_edit.rs +++ b/crates/delta/src/routes/webhooks/webhook_edit.rs @@ -14,6 +14,9 @@ use validator::Validate; #[utoipa::path( tag = "Webhooks", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("webhook_id" = Reference, Path), + ), responses( (status = 200, body = Webhook), ), diff --git a/crates/delta/src/routes/webhooks/webhook_edit_token.rs b/crates/delta/src/routes/webhooks/webhook_edit_token.rs index 3d7aebb3..f06d98ea 100644 --- a/crates/delta/src/routes/webhooks/webhook_edit_token.rs +++ b/crates/delta/src/routes/webhooks/webhook_edit_token.rs @@ -10,6 +10,10 @@ use rocket::{serde::json::Json, State}; /// Edits a webhook with a token #[utoipa::path( tag = "Webhooks", + params( + ("webhook_id" = Reference, Path), + ("token" = String, Path), + ), responses( (status = 200, body = Webhook), ), diff --git a/crates/delta/src/routes/webhooks/webhook_execute.rs b/crates/delta/src/routes/webhooks/webhook_execute.rs index bb08a5bd..44c98d59 100644 --- a/crates/delta/src/routes/webhooks/webhook_execute.rs +++ b/crates/delta/src/routes/webhooks/webhook_execute.rs @@ -15,7 +15,11 @@ use validator::Validate; /// Executes a webhook and sends a message #[utoipa::path( tag = "Webhooks", - params(IdempotencyKey), + params( + ("webhook_id" = Reference, Path), + ("token" = String, Path), + IdempotencyKey, + ), responses( (status = 200, body = v0::Message) ) diff --git a/crates/delta/src/routes/webhooks/webhook_execute_github.rs b/crates/delta/src/routes/webhooks/webhook_execute_github.rs index 95cdc119..c0ce44bf 100644 --- a/crates/delta/src/routes/webhooks/webhook_execute_github.rs +++ b/crates/delta/src/routes/webhooks/webhook_execute_github.rs @@ -713,7 +713,16 @@ fn convert_event(data: &str, event_name: &str) -> Result { /// Executes a webhook specific to github and sends a message containing the relevant info about the event #[utoipa::path( tag = "Webhooks", - params(EventHeader) + request_body( + content = String, + content_type = "application/json", + description = "Github event payload", + ), + params( + ("webhook_id" = Reference, Path), + ("token" = String, Path), + EventHeader, + ), )] #[post("///github", data = "")] pub async fn webhook_execute_github( diff --git a/crates/delta/src/routes/webhooks/webhook_fetch.rs b/crates/delta/src/routes/webhooks/webhook_fetch.rs index 474117be..6f53838b 100644 --- a/crates/delta/src/routes/webhooks/webhook_fetch.rs +++ b/crates/delta/src/routes/webhooks/webhook_fetch.rs @@ -13,6 +13,9 @@ use rocket::{serde::json::Json, State}; #[utoipa::path( tag = "Webhooks", security(("Session-Token" = []), ("Bot-Token" = [])), + params( + ("webhook_id" = Reference, Path), + ), responses( (status = 200, body = Webhook), ), diff --git a/crates/delta/src/routes/webhooks/webhook_fetch_token.rs b/crates/delta/src/routes/webhooks/webhook_fetch_token.rs index 1e330f4a..d3708042 100644 --- a/crates/delta/src/routes/webhooks/webhook_fetch_token.rs +++ b/crates/delta/src/routes/webhooks/webhook_fetch_token.rs @@ -8,6 +8,10 @@ use rocket::{serde::json::Json, State}; /// Gets a webhook with a token #[utoipa::path( tag = "Webhooks", + params( + ("webhook_id" = Reference, Path), + ("token" = String, Path), + ), responses( (status = 200, body = Webhook), ),