Better error handling for typed_answer

This commit is contained in:
Luc Mcgrady 2025-11-07 18:31:50 +00:00
parent 75dd53dba8
commit 666e22ed42
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C

View file

@ -448,17 +448,22 @@ impl crate::services::SchedulerService for Collection {
} }
}); });
let typed_answer = typed_answer_parent_node.map(|field| { let typed_answer = typed_answer_parent_node
let note = self.get_note(next_card.card.note_id.into()).unwrap(); .map(|field| -> Result<(String, String)> {
let notetype = self.get_notetype(note.notetype_id.into()).unwrap().unwrap(); let note = self.get_note(next_card.card.note_id.into())?;
let ord = notetype.get_field_ord(&field.1).unwrap(); let notetype = self
.get_notetype(note.notetype_id.into())?
.or_not_found(note.notetype_id)?;
let ord = notetype.get_field_ord(&field.1).or_not_found(field.1)?;
let mut correct = note.fields[ord].clone(); let mut correct = note.fields[ord].clone();
if field.0.contains("cloze") { if field.0.contains("cloze") {
correct = extract_cloze_for_typing(&correct, (ord + 1).try_into().unwrap()) correct =
extract_cloze_for_typing(&correct, (ord + 1).try_into().unwrap_or(0))
.to_string() .to_string()
} }
(field.0, correct) Ok((field.0, correct))
}); })
.transpose()?;
Ok(NextCardDataResponse { Ok(NextCardDataResponse {
next_card: Some(NextCardData { next_card: Some(NextCardData {