use async_graphql::Context;
use async_graphql::Error;
use async_graphql::FieldResult;
use async_graphql::Object;
use crate::services::user_account_service::models::UserRecordVo;
use crate::services::user_account_service::user_lists;
use crate::services::user_account_service::models::FetchLists;
#[derive(Default)]
pub struct QueryUsers;
#[Object(extends)]
impl QueryUsers {
async fn user_lists(
&self,
ctx: &Context<'_>,
input: FetchLists,
) -> FieldResult<Vec<UserRecordVo>> {
let web_ctx = ctx.data_unchecked::<actix_web::web::Data<crate::server::AppContext>>();
match user_lists(web_ctx.mysql(), input).await {
Ok(list) => Ok(list),
Err(e) => Err(Error::new(e.to_string())),
}
}
}