zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
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 {
    /// Kline
    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())),
        }
    }
}