fix: manually specify params

This commit is contained in:
Zomatree
2025-11-18 14:57:34 +00:00
parent d198796fde
commit 7780aa69c0
76 changed files with 298 additions and 33 deletions

View File

@@ -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<ParameterIn>) -> Vec<Parameter> {
vec![ParameterBuilder::new()
.name("id")
.required(Required::True)
.description(Some("An ID".to_string()))
.parameter_in(parameter_in_provider().unwrap_or_default())
.build()]
}
}

View File

@@ -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()))),
);
}
}
}
impl ToSchema for Reference<'_> {
fn name() -> std::borrow::Cow<'static, str> {
std::borrow::Cow::Borrowed("Reference")
}
}
impl PartialSchema for Reference<'_> {
fn schema() -> RefOr<Schema> {
RefOr::T(
ObjectBuilder::new()
.description(Some("An id referencing a stoat model."))
.schema_type(SchemaType::Type(Type::String))
.examples(["01FD58YK5W7QRV5H3D64KTQYX3"])
.build()
.into(),
)
}
}

View File

@@ -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)
)

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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<v0::User>),
),

View File

@@ -20,6 +20,9 @@ use validator::Validate;
#[utoipa::path(
tag = "Messaging",
security(("Session-Token" = []), ("Bot-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 204),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -14,6 +14,9 @@ use validator::Validate;
#[utoipa::path(
tag = "Messaging",
security(("Session-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 200, body = v0::BulkMessageResponse),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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<Webhook>),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -13,6 +13,9 @@ use rocket_empty::EmptyResponse;
#[utoipa::path(
tag = "Invites",
security(("Session-Token" = []), ("Bot-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 204),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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<Build>) -> Rocket<Build> {
),
),
components(
schemas(
Reference,
)
),
modifiers(
&Extensions,

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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<v0::Emoji>),
),

View File

@@ -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<v0::Invite>),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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,

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -13,6 +13,9 @@ use rocket_empty::EmptyResponse;
#[utoipa::path(
tag = "Server Permissions",
security(("Session-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 204),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -11,6 +11,9 @@ use rocket::State;
#[utoipa::path(
tag = "Relationships",
security(("Session-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 200, body = v0::User),
),

View File

@@ -11,6 +11,9 @@ use rocket::State;
#[utoipa::path(
tag = "Relationships",
security(("Session-Token" = [])),
params(
("target" = Reference, Path),
),
responses(
(status = 200, body = v0::User),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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,

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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),
),

View File

@@ -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)
)

View File

@@ -713,7 +713,16 @@ fn convert_event(data: &str, event_name: &str) -> Result<Event> {
/// 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("/<webhook_id>/<token>/github", data = "<data>")]
pub async fn webhook_execute_github(

View File

@@ -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),
),

View File

@@ -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),
),