use serde::{self, Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "bigbluebuttonbnid")]
pub r#bigbluebuttonbnid: Option<i64>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
#[serde(rename = "updatecache")]
pub r#updatecache: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPresentationsItem {
#[serde(rename = "url")]
pub r#url: Option<String>,
#[serde(rename = "iconname")]
pub r#iconname: Option<String>,
#[serde(rename = "icondesc")]
pub r#icondesc: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
}
pub type r#ReturnsPresentations = Vec<ReturnsPresentationsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeaturesItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "isenabled")]
pub r#isenabled: Option<bool>,
}
pub type r#ReturnsFeatures = Vec<ReturnsFeaturesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Returns {
#[serde(rename = "cmid")]
pub r#cmid: Option<i64>,
#[serde(rename = "userlimit")]
pub r#userlimit: Option<i64>,
#[serde(rename = "bigbluebuttonbnid")]
pub r#bigbluebuttonbnid: Option<String>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
#[serde(rename = "meetingid")]
pub r#meetingid: Option<String>,
#[serde(rename = "openingtime")]
pub r#openingtime: Option<i64>,
#[serde(rename = "closingtime")]
pub r#closingtime: Option<i64>,
#[serde(rename = "statusrunning")]
pub r#statusrunning: Option<bool>,
#[serde(rename = "statusclosed")]
pub r#statusclosed: Option<bool>,
#[serde(rename = "statusopen")]
pub r#statusopen: Option<bool>,
#[serde(rename = "statusmessage")]
pub r#statusmessage: Option<String>,
#[serde(rename = "startedat")]
pub r#startedat: Option<i64>,
#[serde(rename = "moderatorcount")]
pub r#moderatorcount: Option<i64>,
#[serde(rename = "participantcount")]
pub r#participantcount: Option<i64>,
#[serde(rename = "moderatorplural")]
pub r#moderatorplural: Option<bool>,
#[serde(rename = "participantplural")]
pub r#participantplural: Option<bool>,
#[serde(rename = "canjoin")]
pub r#canjoin: Option<bool>,
#[serde(rename = "ismoderator")]
pub r#ismoderator: Option<bool>,
#[serde(rename = "presentations")]
pub r#presentations: Option<r#ReturnsPresentations>,
#[serde(rename = "joinurl")]
pub r#joinurl: Option<String>,
#[serde(rename = "guestaccessenabled")]
pub r#guestaccessenabled: Option<bool>,
#[serde(rename = "guestjoinurl")]
pub r#guestjoinurl: Option<String>,
#[serde(rename = "guestpassword")]
pub r#guestpassword: Option<String>,
#[serde(rename = "features")]
pub r#features: Option<r#ReturnsFeatures>,
}
pub async fn call<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<Returns> {
let json = client
.post("mod_bigbluebuttonbn_meeting_info", params)
.await?;
serde_json::from_value(json).map_err(|e| e.into())
}
pub async fn call_raw<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<serde_json::Value> {
client
.post("mod_bigbluebuttonbn_meeting_info", params)
.await
}