athena_rs 0.75.4

WIP Database API gateway
Documentation
use crate::parser::query_builder::Condition;
use serde_json::{Value};

/// Internal representation of a simple equality filter provided by gateway requests.
#[derive(Debug)]
pub struct RequestCondition {
    pub eq_column: String,
    pub eq_value: String,
}

impl RequestCondition {
    pub fn new(eq_column: String, eq_value: String) -> Self {
        Self { eq_column, eq_value }
    }
}

/// Converts normalized request conditions into Postgres query conditions.
pub fn to_query_conditions(conditions: &[RequestCondition]) -> Vec<Condition> {
    conditions
        .iter()
        .map(|condition| {
            Condition::eq(
                &condition.eq_column,
                Value::String(condition.eq_value.clone()),
            )
        })
        .collect()
}