1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
use crate::database::search::search_request::SearchRequest;
use crate::database::sql::query_builder::QueryBuilder;

pub fn to_query_builder(request: SearchRequest, table_name: String) -> QueryBuilder {
    let mut query_builder = QueryBuilder::new(table_name);
    for filter_field in request.filter_fields {
        query_builder = query_builder.where_values(filter_field.name, filter_field.operator, filter_field.value, filter_field.joiner);
    }
    for sort_field in request.sort_fields {
        query_builder = query_builder.order_by(sort_field.name, sort_field.order);
    }
    if request.pagination.is_some() {
        query_builder = query_builder.with_pagination(request.pagination);
    }
    query_builder
}