athena_rs 0.77.0

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: Value,
}

impl RequestCondition {
    pub fn new(eq_column: String, eq_value: Value) -> 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, condition.eq_value.clone()))
        .collect()
}