Expand description

Module for defining Microsoft Dataverse queries for use in Client::retrieve_multiple(...)

These queries are modeled after the ODATAv4 specifications used by Microsoft Dataverse. This section is prone to change as these specifications allow for a wide array of possible querying options.

§Examples

use uuid::Uuid;
use serde::Deserialize;
use powerplatform_dataverse_service_client::{
    client::{Client, Page},
    entity::ReadEntity,
    result::Result,
    select::Select,
    query::{
        attribute::Attribute,
        filter::Filter,
        order::Order,
        Query
    }
};

async fn test() -> Result<()> {
    let query = Query::new("contacts")
        .limit(3)
        .filter(Filter::Equal("firstname", Attribute::String(String::from("Testy"))))
        .order(vec![Order::Ascending("lastname")]);

    let client = Client::new_dummy();
    let contacts: Page<Contact> = client.retrieve_multiple(&query).await?;
    Ok(())
}

#[derive(Deserialize)]
struct Contact {
    contactid: Uuid,
    firstname: String,
    lastname: String,
}

impl ReadEntity for Contact {}

impl Select for Contact {
    fn get_columns() -> &'static [&'static str] {
        &["contactid", "firstname", "lastname"]
    }
}

Modules§

attribute
filter
order

Structs§

Query
Represents a Microsoft Dataverse query