use axum::extract::{Query, State};
use axum::Json;
use serde::Deserialize;
use crate::domain::actions::Action;
use crate::domain::assumptions::Assumption;
use crate::domain::evidence::Evidence;
use crate::error::AppResult;
use crate::services::graph as svc;
use crate::state::AppState;
#[derive(Debug, Deserialize)]
pub struct ListQuery {
pub limit: Option<i64>,
}
pub async fn list_assumptions(
State(state): State<AppState>,
Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Assumption>>> {
Ok(Json(svc::list_assumptions(&state.pool, q.limit).await?))
}
pub async fn list_actions(
State(state): State<AppState>,
Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Action>>> {
Ok(Json(svc::list_actions(&state.pool, q.limit).await?))
}
pub async fn list_evidence(
State(state): State<AppState>,
Query(q): Query<ListQuery>,
) -> AppResult<Json<Vec<Evidence>>> {
Ok(Json(svc::list_evidence(&state.pool, q.limit).await?))
}