select_query

Attribute Macro select_query 

Source
#[select_query]
Expand description

Create a select edgeDB query

ยงUsage

    use edgedb_query_derive::{edgedb_filters, query_result, select_query};
    use edgedb_query::models::edge_query::{ToEdgeQuery, EdgeQuery};
    use edgedb_query::queries::select::{OrderDir, OrderOptions, SelectOptions};

    #[select_query(module = "users", table = "User", result = "UserResult")]
    pub struct SelectQuery {
        #[filter(operator = "Is")]
        pub name: String,

        #[and_filter(operator = "GreaterThan")]
        pub age: i8,

        #[options]
        options: SelectOptions
    }

    #[query_result]
    pub struct UserResult {
        pub id: uuid::Uuid,
        pub name: String,
        pub age: i8,
    }

    async fn main() {
         let client = edgedb_tokio::create_client().await.unwrap();

         let select_query =  SelectQuery {
            options: SelectOptions {
                order_options: Some(OrderOptions {
                    order_by: "name".to_string(),
                    order_direction: Some(OrderDir::Desc)
                }),
                page_options: None
            },
            name:  "Joe".to_string(),
            age: 18
        };

        let query = select_query.to_edge_query();

        let user: UserResult = client
                .query_single::<UserResult, _>(query.query.as_str(), &query.args.unwrap())
                .await
                .unwrap();
    }