(
table: &Table,
filter: Option<&str>,
limit: Option<usize>,
offset: Option<usize>,
)
| 709 | } |
| 710 | |
| 711 | async fn query_requests( |
| 712 | table: &Table, |
| 713 | filter: Option<&str>, |
| 714 | limit: Option<usize>, |
| 715 | offset: Option<usize>, |
| 716 | ) -> Result<Vec<ArticleRequestRecord>> { |
| 717 | let mut query = table.query(); |
| 718 | if let Some(f) = filter { |
| 719 | query = query.only_if(f); |
| 720 | } |
| 721 | if let Some(o) = offset { |
| 722 | query = query.offset(o); |
| 723 | } |
| 724 | if let Some(l) = limit { |
| 725 | query = query.limit(l.max(1)); |
| 726 | } |
| 727 | let cols = &[ |
| 728 | "request_id", |
| 729 | "article_url", |
| 730 | "title_hint", |
| 731 | "request_message", |
| 732 | "nickname", |
| 733 | "requester_email", |
| 734 | "frontend_page_url", |
| 735 | "status", |
| 736 | "fingerprint", |
| 737 | "client_ip", |
| 738 | "ip_region", |
| 739 | "admin_note", |
| 740 | "failure_reason", |
| 741 | "ingested_article_id", |
| 742 | "attempt_count", |
| 743 | "created_at", |
| 744 | "updated_at", |
| 745 | "ai_reply", |
| 746 | "parent_request_id", |
| 747 | ]; |
| 748 | let batches = query |
| 749 | .select(Select::columns(cols)) |
| 750 | .execute() |
| 751 | .await? |
| 752 | .try_collect::<Vec<_>>() |
| 753 | .await?; |
| 754 | |
| 755 | let mut rows = Vec::new(); |
| 756 | for batch in batches { |
| 757 | let c_request_id = string_col(&batch, "request_id")?; |
| 758 | let c_article_url = string_col(&batch, "article_url")?; |
| 759 | let c_title_hint = string_col(&batch, "title_hint")?; |
| 760 | let c_request_message = string_col(&batch, "request_message")?; |
| 761 | let c_nickname = string_col(&batch, "nickname")?; |
| 762 | let c_requester_email = string_col(&batch, "requester_email")?; |
| 763 | let c_frontend_page_url = string_col(&batch, "frontend_page_url")?; |
| 764 | let c_status = string_col(&batch, "status")?; |
| 765 | let c_fingerprint = string_col(&batch, "fingerprint")?; |
| 766 | let c_client_ip = string_col(&batch, "client_ip")?; |
| 767 | let c_ip_region = string_col(&batch, "ip_region")?; |
| 768 | let c_admin_note = string_col(&batch, "admin_note")?; |
no test coverage detected