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