diff options
Diffstat (limited to '')
| -rw-r--r-- | src/command/client/search.rs | 32 | ||||
| -rw-r--r-- | src/command/client/search/interactive.rs | 12 |
2 files changed, 23 insertions, 21 deletions
diff --git a/src/command/client/search.rs b/src/command/client/search.rs index f437783d..3098267a 100644 --- a/src/command/client/search.rs +++ b/src/command/client/search.rs @@ -148,13 +148,25 @@ async fn run_non_interactive( let context = current_context(); + let before = before.and_then(|b| { + interim::parse_date_string(b.as_str(), Utc::now(), interim::Dialect::Uk) + .map_or(None, |d| Some(d.timestamp_nanos())) + }); + + let after = after.and_then(|a| { + interim::parse_date_string(a.as_str(), Utc::now(), interim::Dialect::Uk) + .map_or(None, |d| Some(d.timestamp_nanos())) + }); + let results = db .search( - limit, settings.search_mode, settings.filter_mode, &context, query.join(" ").as_str(), + limit, + before, + after, ) .await?; @@ -187,24 +199,6 @@ async fn run_non_interactive( } } - if let Some(before) = &before { - let before = - interim::parse_date_string(before.as_str(), Utc::now(), interim::Dialect::Uk); - - if before.is_err() || h.timestamp.gt(&before.unwrap()) { - return false; - } - } - - if let Some(after) = &after { - let after = - interim::parse_date_string(after.as_str(), Utc::now(), interim::Dialect::Uk); - - if after.is_err() || h.timestamp.lt(&after.unwrap()) { - return false; - } - } - true }) .map(std::borrow::ToOwned::to_owned) diff --git a/src/command/client/search/interactive.rs b/src/command/client/search/interactive.rs index 05ab03e4..4a29ee47 100644 --- a/src/command/client/search/interactive.rs +++ b/src/command/client/search/interactive.rs @@ -57,8 +57,16 @@ impl State { db.list(self.filter_mode, &self.context, Some(200), true) .await? } else { - db.search(Some(200), search_mode, self.filter_mode, &self.context, i) - .await? + db.search( + search_mode, + self.filter_mode, + &self.context, + i, + Some(200), + None, + None, + ) + .await? }; self.results_state.select(0); |
