use serde::{self, Deserialize, Serialize};
pub type r#ParamsCourseids = Vec<i64>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "courseids")]
pub r#courseids: Option<r#ParamsCourseids>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsDatabasesItemIntrofilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsDatabasesItemIntrofiles = Vec<ReturnsDatabasesItemIntrofilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsDatabasesItem {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "course")]
pub r#course: Option<i64>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "intro")]
pub r#intro: Option<String>,
#[serde(rename = "introformat")]
pub r#introformat: Option<i64>,
#[serde(rename = "lang")]
pub r#lang: Option<String>,
#[serde(rename = "comments")]
pub r#comments: Option<bool>,
#[serde(rename = "timeavailablefrom")]
pub r#timeavailablefrom: Option<i64>,
#[serde(rename = "timeavailableto")]
pub r#timeavailableto: Option<i64>,
#[serde(rename = "timeviewfrom")]
pub r#timeviewfrom: Option<i64>,
#[serde(rename = "timeviewto")]
pub r#timeviewto: Option<i64>,
#[serde(rename = "requiredentries")]
pub r#requiredentries: Option<i64>,
#[serde(rename = "requiredentriestoview")]
pub r#requiredentriestoview: Option<i64>,
#[serde(rename = "maxentries")]
pub r#maxentries: Option<i64>,
#[serde(rename = "rssarticles")]
pub r#rssarticles: Option<i64>,
#[serde(rename = "singletemplate")]
pub r#singletemplate: Option<String>,
#[serde(rename = "listtemplate")]
pub r#listtemplate: Option<String>,
#[serde(rename = "listtemplateheader")]
pub r#listtemplateheader: Option<String>,
#[serde(rename = "listtemplatefooter")]
pub r#listtemplatefooter: Option<String>,
#[serde(rename = "addtemplate")]
pub r#addtemplate: Option<String>,
#[serde(rename = "rsstemplate")]
pub r#rsstemplate: Option<String>,
#[serde(rename = "rsstitletemplate")]
pub r#rsstitletemplate: Option<String>,
#[serde(rename = "csstemplate")]
pub r#csstemplate: Option<String>,
#[serde(rename = "jstemplate")]
pub r#jstemplate: Option<String>,
#[serde(rename = "asearchtemplate")]
pub r#asearchtemplate: Option<String>,
#[serde(rename = "approval")]
pub r#approval: Option<bool>,
#[serde(rename = "manageapproved")]
pub r#manageapproved: Option<bool>,
#[serde(rename = "scale")]
pub r#scale: Option<i64>,
#[serde(rename = "assessed")]
pub r#assessed: Option<i64>,
#[serde(rename = "assesstimestart")]
pub r#assesstimestart: Option<i64>,
#[serde(rename = "assesstimefinish")]
pub r#assesstimefinish: Option<i64>,
#[serde(rename = "defaultsort")]
pub r#defaultsort: Option<i64>,
#[serde(rename = "defaultsortdir")]
pub r#defaultsortdir: Option<i64>,
#[serde(rename = "editany")]
pub r#editany: Option<bool>,
#[serde(rename = "notification")]
pub r#notification: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "coursemodule")]
pub r#coursemodule: Option<i64>,
#[serde(rename = "introfiles")]
pub r#introfiles: Option<r#ReturnsDatabasesItemIntrofiles>,
}
pub type r#ReturnsDatabases = Vec<ReturnsDatabasesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsWarningsItem {
#[serde(rename = "item")]
pub r#item: Option<String>,
#[serde(rename = "itemid")]
pub r#itemid: Option<i64>,
#[serde(rename = "warningcode")]
pub r#warningcode: Option<String>,
#[serde(rename = "message")]
pub r#message: Option<String>,
}
pub type r#ReturnsWarnings = Vec<ReturnsWarningsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Returns {
#[serde(rename = "databases")]
pub r#databases: Option<r#ReturnsDatabases>,
#[serde(rename = "warnings")]
pub r#warnings: Option<r#ReturnsWarnings>,
}
pub async fn call<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<Returns> {
let json = client
.post("mod_data_get_databases_by_courses", 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_data_get_databases_by_courses", params)
.await
}