use reqwest::Client;
use serde_json::Value;
use std::error::Error;
#[allow(dead_code)]
pub async fn list_scheduled_events(client: &Client, token: &str, guild_id: &str, event_id: &str) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}", guild_id, event_id);
let response: Value = client.get(&url)
.bearer_auth(token)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn create_scheduled_event(client: &Client, token: &str, guild_id: &str, event_settings: Value) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events", guild_id);
let response: Value = client.post(&url)
.bearer_auth(token)
.json(&event_settings)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn get_scheduled_event(client: &Client, token: &str, guild_id: &str, event_id: &str) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}", guild_id, event_id);
let response: Value = client.get(&url)
.bearer_auth(token)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn modify_scheduled_event(client: &Client, token: &str, guild_id: &str, event_id: &str, event_settings: Value) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}", guild_id, event_id);
let response: Value = client.patch(&url)
.bearer_auth(token)
.json(&event_settings)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn delete_scheduled_event(client: &Client, token: &str, guild_id: &str, event_id: &str) -> Result<(), Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}", guild_id, event_id);
client.delete(&url)
.bearer_auth(token)
.send()
.await?
.error_for_status()?;
Ok(())
}
#[allow(dead_code)]
pub async fn get_scheduled_event_users(client: &Client, token: &str, guild_id: &str, event_id: &str) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}/users", guild_id, event_id);
let response: Value = client.get(&url)
.bearer_auth(token)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn update_scheduled_event_status(client: &Client, token: &str, guild_id: &str, event_id: &str, status: &str) -> Result<Value, Box<dyn Error>> {
let url = format!("https://discord.com/api/v9/guilds/{}/scheduled-events/{}", guild_id, event_id);
let body = serde_json::json!({ "status": status });
let response: Value = client.patch(&url)
.bearer_auth(token)
.json(&body)
.send()
.await?
.json()
.await?;
Ok(response)
}
#[allow(dead_code)]
pub async fn get_scheduled_event_permissions(client: &Client, token: &str) -> Result<Value, Box<dyn Error>> {
let url = "https://discord.com/api/v9/scheduled-events/permissions";
let response: Value = client.get(url)
.bearer_auth(token)
.send()
.await?
.json()
.await?;
Ok(response)
}