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
let mut correct = note.fields[ord].clone(); .get_notetype(note.notetype_id.into())?
if field.0.contains("cloze") { .or_not_found(note.notetype_id)?;
correct = extract_cloze_for_typing(&correct, (ord + 1).try_into().unwrap()) let ord = notetype.get_field_ord(&field.1).or_not_found(field.1)?;
.to_string() let mut correct = note.fields[ord].clone();
} if field.0.contains("cloze") {
(field.0, correct) correct =
}); extract_cloze_for_typing(&correct, (ord + 1).try_into().unwrap_or(0))
.to_string()
}
Ok((field.0, correct))
})
.transpose()?;
Ok(NextCardDataResponse { Ok(NextCardDataResponse {
next_card: Some(NextCardData { next_card: Some(NextCardData {