use async_graphql::Context;
use async_graphql::Error;
use async_graphql::FieldResult;
use async_graphql::Object;
use crate::services::kline_service;
use crate::services::kline_service::select_kline_data;
#[derive(Default)]
pub struct QueryKline;
#[Object(extends)]
impl QueryKline {
async fn kline_data(
&self,
ctx: &Context<'_>,
input: kline_service::models::FetchKline,
) -> FieldResult<Option<Vec<kline_service::models::KlineDataVo>>> {
let web_ctx = ctx.data_unchecked::<actix_web::web::Data<crate::server::AppContext>>();
let m = &web_ctx.mysql();
match select_kline_data(m, input).await {
Ok(result) => Ok(Some(result)),
Err(e) => Err(Error::new(e.to_string())),
}
}
}