Want to update code from
fn list() {
table_name.filter(column_one.eq(value))
.filter(column_two.eq_any(values))
.filter(date_column.lt(utc.now()))
.load::<TableName>(& mut conn)
.expect("Error lisintg posts");
}
fn count() {
table_name.filter(column_one.eq(value))
.filter(column_two.eq_any(values))
.filter(date_column.lt(utc.now()))
.count()
.get_result(& mut conn)
.expect("Error fetching counts");
}
to
fn list() {
conditions(value, values)
.load::<TableName>(& mut conn)
.expect("Error lisintg posts");
}
fn count() {
conditions(value, values)
.count()
.get_result(& mut conn)
.expect("Error fetching counts");
}
fn conditions(value, values) {
table_name.filter(column_one.eq(value))
.filter(column_two.eq_any(values))
.filter(date_column.lt(utc.now()))
}
Please try to describe what you already tried and where exactly you've hit a problem. Otherwise it's hard to know which part exactly should be answered.
I have tried
fn get_conditions(
addresses: &Vec<String>,
filter_by: &String,
) -> Box<dyn BoxableExpression<wallet_alerts, Pg, SqlType = Bool>> {
let q = wallet_alerts.filter(
wallet_address
.eq_any(addresses)
.and(mark_deleted.eq(false))
.and(created_at.lt(Utc::now()))
.and(alert_type.eq(filter_by)),
);
Box::new(q.into_boxed())
}
this give an error as below
error[E0277]: the trait bound `BoxedSelectStatement<'_, (diesel::sql_types::Text, diesel::sql_types::Text, diesel::sql_types::Text, diesel::sql_types::Text, diesel::sql_types::Text, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Numeric, diesel::sql_types::Text, diesel::sql_types::Nullable<diesel::sql_types::Timestamptz>, diesel::sql_types::Timestamptz, diesel::sql_types::Text, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Nullable<diesel::sql_types::Bool>, diesel::sql_types::Integer), FromClause<schema::wallet_alerts::table>, Pg>: ValidGrouping<()>` is not satisfied
system
Closed
September 19, 2023, 11:53am
4
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.