1use crate as eg;
3use eg::Editor;
4use eg::EgResult;
5use eg::EgValue;
6
7pub fn summarize_circ_chain(e: &mut Editor, circ_id: i64) -> EgResult<EgValue> {
8 let query = eg::hash! {
9 from: ["action.summarize_all_circ_chain", circ_id]
10 };
11
12 if let Some(circ) = e.json_query(query)?.pop() {
13 Ok(EgValue::create("accs", circ)?)
14 } else {
15 Err(format!("No such circulation: {circ_id}").into())
16 }
17}
18
19pub fn circ_chain(e: &mut Editor, circ_id: i64) -> EgResult<Vec<EgValue>> {
20 let query = eg::hash! {
21 from: ["action.all_circ_chain", circ_id]
22 };
23
24 let mut circ_list = e.json_query(query)?;
25
26 if circ_list.is_empty() {
27 Err("No such circulation: {circ_id}")?;
28 }
29
30 let mut chains = Vec::new();
31 for circ in circ_list.drain(..) {
32 chains.push(EgValue::create("aacs", circ)?);
33 }
34
35 Ok(chains)
36}