forked from Deuxfleurs/garage
Rename and change query filters
This commit is contained in:
parent
de37658b94
commit
ba7f268b99
3 changed files with 8 additions and 8 deletions
|
@ -116,12 +116,11 @@ impl<'a> BucketHelper<'a> {
|
|||
.get_range(
|
||||
&EmptyKey,
|
||||
None,
|
||||
Some(KeyFilter::Matches(pattern.to_string())),
|
||||
Some(KeyFilter::MatchesAndNotDeleted(pattern.to_string())),
|
||||
10,
|
||||
)
|
||||
.await?
|
||||
.into_iter()
|
||||
.filter(|k| !k.state.is_deleted())
|
||||
.collect::<Vec<_>>();
|
||||
if candidates.len() != 1 {
|
||||
Err(Error::BadRequest(format!(
|
||||
|
|
|
@ -152,7 +152,7 @@ pub struct KeyTable;
|
|||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum KeyFilter {
|
||||
Deleted(DeletedFilter),
|
||||
Matches(String),
|
||||
MatchesAndNotDeleted(String),
|
||||
}
|
||||
|
||||
impl TableSchema for KeyTable {
|
||||
|
@ -166,10 +166,11 @@ impl TableSchema for KeyTable {
|
|||
fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool {
|
||||
match filter {
|
||||
KeyFilter::Deleted(df) => df.apply(entry.state.is_deleted()),
|
||||
KeyFilter::Matches(pat) => {
|
||||
KeyFilter::MatchesAndNotDeleted(pat) => {
|
||||
let pat = pat.to_lowercase();
|
||||
entry.key_id.to_lowercase().starts_with(&pat)
|
||||
|| entry.name.get().to_lowercase() == pat
|
||||
!entry.state.is_deleted()
|
||||
&& (entry.key_id.to_lowercase().starts_with(&pat)
|
||||
|| entry.name.get().to_lowercase() == pat)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ impl PartitionKey for EmptyKey {
|
|||
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
|
||||
pub enum DeletedFilter {
|
||||
All,
|
||||
Any,
|
||||
Deleted,
|
||||
NotDeleted,
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ pub enum DeletedFilter {
|
|||
impl DeletedFilter {
|
||||
pub fn apply(&self, deleted: bool) -> bool {
|
||||
match self {
|
||||
DeletedFilter::All => true,
|
||||
DeletedFilter::Any => true,
|
||||
DeletedFilter::Deleted => deleted,
|
||||
DeletedFilter::NotDeleted => !deleted,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue