use serde_json::Value;
use sqlx::Row;
use sqlx::postgres::{PgPool, PgRow};
use sqlx::types::JsonValue;
pub async fn list_athena_router_entries(pool: &PgPool) -> Result<Vec<Value>, String> {
let rows: Vec<PgRow> = sqlx::query(
r#"
SELECT to_jsonb(t) AS row_json
FROM pm_athena_router t
"#,
)
.fetch_all(pool)
.await
.map_err(|err| {
format!("Failed to fetch list_athena_router_entries data from athena_logging: {err}")
})?;
rows.into_iter()
.map(|row| {
row.try_get::<JsonValue, _>("row_json").map_err(|err| {
format!(
"Failed to decode list_athena_router_entries row from athena_logging: {err}"
)
})
})
.collect::<Result<Vec<Value>, String>>()
}