Merge pull request #2489 from omnivore-app/more-search-scope

add in:subscription and in:library in search scope
This commit is contained in:
Hongbo Wu 2023-07-17 17:28:24 +08:00 committed by GitHub
commit 3cfd390346
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 1 deletions

View file

@ -148,8 +148,60 @@ const appendInFilter = (builder: ESBuilder, filter: InFilter): ESBuilder => {
gte: 'now-14d',
},
})
case InFilter.LIBRARY:
return builder.query('bool', {
should: [
{
nested: {
path: 'labels',
query: {
term: {
'labels.name': 'library',
},
},
},
},
{
bool: {
must_not: [
{
nested: {
path: 'labels',
query: {
terms: {
'labels.name': ['newsletter', 'rss'],
},
},
},
},
],
should: [],
},
},
],
minimum_should_match: 1,
})
case InFilter.SUBSCRIPTION:
return builder
.andQuery('nested', {
path: 'labels',
query: {
terms: {
'labels.name': ['newsletter', 'rss'],
},
},
})
.notQuery('nested', {
path: 'labels',
query: {
term: {
'labels.name': 'library',
},
},
})
default:
return builder
}
return builder
}
const appendHasFilters = (

View file

@ -22,6 +22,8 @@ export enum InFilter {
INBOX,
ARCHIVE,
TRASH,
SUBSCRIPTION,
LIBRARY,
}
export interface SearchFilter {
@ -123,7 +125,12 @@ const parseInFilter = (
return InFilter.ARCHIVE
case 'TRASH':
return InFilter.TRASH
case 'SUBSCRIPTION':
return InFilter.SUBSCRIPTION
case 'LIBRARY':
return InFilter.LIBRARY
}
return query ? InFilter.ALL : InFilter.INBOX
}