diff --git a/examples/create_lesson.rs b/examples/create_lesson.rs index 0c91042..df1f441 100644 --- a/examples/create_lesson.rs +++ b/examples/create_lesson.rs @@ -10,11 +10,15 @@ use wanisabi_model::subject::{Meaning, Subject::*}; #[tokio::main] async fn main() -> Result<(), wanisabi::Error> { let client = WanikaniClient::default(); - let first_lesson_assignment = client + let lesson_assignments = client .get_assignments_filtered(vec![AssignmentsFilter::ImmediatelyAvailableForLessons]) .await? - .data[0] - .clone(); + .data; + if lesson_assignments.len() == 0 { + println!("No lessons available"); + return Ok(()); + } + let first_lesson_assignment = lesson_assignments[0].clone(); let lesson_subj = client .get_subject(first_lesson_assignment.data.subject_id) .await? diff --git a/examples/create_review.rs b/examples/create_review.rs index c3d2687..66073f5 100644 --- a/examples/create_review.rs +++ b/examples/create_review.rs @@ -9,11 +9,15 @@ use wanisabi_model::subject::{Meaning, Subject::*}; #[tokio::main] async fn main() -> Result<(), wanisabi::Error> { let client = WanikaniClient::default(); - let first_review_assignment = client + let reviews_assignments = client .get_assignments_filtered(vec![AssignmentsFilter::ImmediatelyAvailableForReview]) .await? - .data[0] - .clone(); + .data; + if reviews_assignments.len() == 0 { + println!("No reviews available"); + return Ok(()); + } + let first_review_assignment = reviews_assignments[0].clone(); let first_available_review = client .get_subject(first_review_assignment.data.subject_id) .await? diff --git a/examples/create_study_material.rs b/examples/create_study_material.rs new file mode 100644 index 0000000..8801c4d --- /dev/null +++ b/examples/create_study_material.rs @@ -0,0 +1,30 @@ +use text_io::read; +use wanisabi::{wanikani_client::WanikaniClient, wrapper::study_materials::StudyMaterialCreate}; +use wanisabi_model::subject::Subject::*; +#[tokio::main] +async fn main() -> Result<(), wanisabi::Error> { + println!("Enter a subject ID you wish to add a note to."); + let client = WanikaniClient::default(); + let id: i64 = read!(); + let s = client.get_subject(id).await?.data; + let (meaning_note, meaning_synonyms, reading_note) = match s { + Radical(r) => { + println!("Please enter a meaning note for {r:?}"); + let meaning_note: String = read!(); + let mut synonyms = vec![]; + loop { + println!("Enter a synonym or type /stop to stop"); + let inp: String = read!(); + if inp == "/stop" { + break; + } + synonyms.push(inp); + } + (meaning_note, synonyms, "".to_owned()) + } + KanaVocabulary(k) => { + println!("Please enter a ") + } + }; + Ok(()) +} diff --git a/examples/level_progressions.rs b/examples/level_progressions.rs index 6440e60..fb5e1f3 100644 --- a/examples/level_progressions.rs +++ b/examples/level_progressions.rs @@ -9,7 +9,6 @@ use wanisabi_model::level_progression::LevelProgression; async fn main() -> Result<(), wanisabi::Error> { let client = WanikaniClient::default(); let params = vec![LevelProgressionFilter::Ids(vec![1, 2])]; - let lps: CollectionResponse> = client.get_level_progressions_filtered(params).await?; let d = lps.data; diff --git a/src/wrapper/study_materials.rs b/src/wrapper/study_materials.rs index 1cfeb68..66a2bec 100644 --- a/src/wrapper/study_materials.rs +++ b/src/wrapper/study_materials.rs @@ -21,7 +21,7 @@ pub enum StudyMaterialFilter { #[derive(Serialize, Deserialize, Debug, Clone)] pub struct StudyMaterialCreate { - pub subjet_id: i64, + pub subject_id: i64, pub meaning_note: Option, pub reading_note: Option, pub meaning_synonyms: Option>,