diff --git a/src/noose/sqlite.rs b/src/noose/sqlite.rs index da09188..c1ae0bd 100644 --- a/src/noose/sqlite.rs +++ b/src/noose/sqlite.rs @@ -940,20 +940,28 @@ impl NostrSqlite { query = query.limit(limit as u64).to_owned(); } - filter.generic_tags.iter().for_each(|(tag, values)| { - let values = values.iter().map(|val| val.to_string()); + if !filter.generic_tags.is_empty() { query = query .left_join( TagsTable::Table, sea_query::Expr::col((TagsTable::Table, TagsTable::EventId)) .equals((EventsTable::Table, EventsTable::EventId)), ) - .and_where( - sea_query::Expr::col((TagsTable::Table, TagsTable::Tag)).eq(tag.to_string()), - ) - .and_where(sea_query::Expr::col((TagsTable::Table, TagsTable::Value)).is_in(values)) .to_owned(); - }); + + filter.generic_tags.iter().for_each(|(tag, values)| { + let values = values.iter().map(|val| val.to_string()); + query = query + .and_where( + sea_query::Expr::col((TagsTable::Table, TagsTable::Tag)) + .eq(tag.to_string()), + ) + .and_where( + sea_query::Expr::col((TagsTable::Table, TagsTable::Value)).is_in(values), + ) + .to_owned(); + }); + } if let Some(search) = &filter.search { query = query @@ -990,7 +998,6 @@ impl NostrSqlite { self.get_filter_query(filter), sea_query::Alias::new("events"), ) - // .order_by(EventsTable::CreatedAt, order.to_owned()) .to_owned() }) .reduce(|mut result, query| result.union(sea_query::UnionType::All, query).to_owned()) @@ -1266,9 +1273,11 @@ impl Noose for NostrSqlite { Err(e) => Command::ServiceError(e), } } - Command::DbReqDeleteEvents(client_id, event) => match self.admin_delete_events(&event).await { - Ok(status) => Command::DbResOkWithStatus(client_id, status), - Err(e) => Command::ServiceError(e), + Command::DbReqDeleteEvents(client_id, event) => { + match self.admin_delete_events(&event).await { + Ok(status) => Command::DbResOkWithStatus(client_id, status), + Err(e) => Command::ServiceError(e), + } } Command::DbReqEventCounts(client_id, subscriptioin) => { match self.counts(subscriptioin).await {