Extension(index): Extension<Arc<Index>>,
Path(inscription_id): Path<InscriptionId>,
) -> ServerResult<Response> {
Self::children_paginated(
Extension(page_config),
Extension(index),
Path((inscription_id, 0)),
)
.await
}
async fn children_paginated(
Extension(page_config): Extension<Arc<PageConfig>>,
Extension(index): Extension<Arc<Index>>,
Path((parent, page)): Path<(InscriptionId, usize)>,
) -> ServerResult<Response> {
let entry = index
.get_inscription_entry(parent)?
.ok_or_not_found(|| format!("inscription {parent}"))?;
let parent_number = entry.inscription_number;
let (children, more_children) =
index.get_children_by_sequence_number_paginated(entry.sequence_number, 100, page)?;
let prev_page = page.checked_sub(1);
let next_page = more_children.then_some(page + 1);
Ok(
ChildrenHtml {
parent,
parent_number,
children,
prev_page,
next_page,
}
.page(page_config)