mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Add published sort param in elastic query
This commit is contained in:
parent
641f191fcd
commit
61065efd2b
2 changed files with 19 additions and 44 deletions
|
|
@ -8,7 +8,7 @@ import {
|
|||
SearchResponse,
|
||||
} from './types'
|
||||
import {
|
||||
DateRangeFilter,
|
||||
DateFilter,
|
||||
HasFilter,
|
||||
InFilter,
|
||||
LabelFilter,
|
||||
|
|
@ -145,31 +145,16 @@ const appendIncludeLabelFilter = (
|
|||
})
|
||||
}
|
||||
|
||||
const appendSavedDateFilter = (
|
||||
body: SearchBody,
|
||||
filter: DateRangeFilter
|
||||
): void => {
|
||||
body.query.bool.filter.push({
|
||||
range: {
|
||||
savedAt: {
|
||||
gt: filter.startDate,
|
||||
lt: filter.endDate,
|
||||
const appendDateFilters = (body: SearchBody, filters: DateFilter[]): void => {
|
||||
filters.forEach((filter) => {
|
||||
body.query.bool.filter.push({
|
||||
range: {
|
||||
[filter.field]: {
|
||||
gt: filter.startDate,
|
||||
lt: filter.endDate,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
const appendPublishedDateFilter = (
|
||||
body: SearchBody,
|
||||
filter: DateRangeFilter
|
||||
): void => {
|
||||
body.query.bool.filter.push({
|
||||
range: {
|
||||
publishedAt: {
|
||||
gt: filter.startDate,
|
||||
lt: filter.endDate,
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -350,10 +335,9 @@ export const searchPages = async (
|
|||
inFilter?: InFilter
|
||||
readFilter?: ReadFilter
|
||||
typeFilter?: PageType
|
||||
labelFilters?: LabelFilter[]
|
||||
hasFilters?: HasFilter[]
|
||||
savedDateFilter?: DateRangeFilter
|
||||
publishedDateFilter?: DateRangeFilter
|
||||
labelFilters: LabelFilter[]
|
||||
hasFilters: HasFilter[]
|
||||
dateFilters: DateFilter[]
|
||||
subscriptionFilter?: SubscriptionFilter
|
||||
includePending?: boolean | null
|
||||
},
|
||||
|
|
@ -367,11 +351,10 @@ export const searchPages = async (
|
|||
query,
|
||||
readFilter = ReadFilter.ALL,
|
||||
typeFilter,
|
||||
labelFilters = [],
|
||||
labelFilters,
|
||||
inFilter = InFilter.ALL,
|
||||
hasFilters = [],
|
||||
savedDateFilter,
|
||||
publishedDateFilter,
|
||||
hasFilters,
|
||||
dateFilters,
|
||||
subscriptionFilter,
|
||||
} = args
|
||||
// default order is descending
|
||||
|
|
@ -435,11 +418,8 @@ export const searchPages = async (
|
|||
if (excludeLabels.length > 0) {
|
||||
appendExcludeLabelFilter(body, excludeLabels)
|
||||
}
|
||||
if (savedDateFilter) {
|
||||
appendSavedDateFilter(body, savedDateFilter)
|
||||
}
|
||||
if (publishedDateFilter) {
|
||||
appendPublishedDateFilter(body, publishedDateFilter)
|
||||
if (dateFilters.length > 0) {
|
||||
appendDateFilters(body, dateFilters)
|
||||
}
|
||||
if (subscriptionFilter) {
|
||||
appendSubscriptionFilter(body, subscriptionFilter)
|
||||
|
|
|
|||
|
|
@ -25,12 +25,7 @@ export interface SearchBody {
|
|||
}
|
||||
| {
|
||||
range: {
|
||||
savedAt: { gt: Date | undefined } | { lt: Date | undefined }
|
||||
}
|
||||
}
|
||||
| {
|
||||
range: {
|
||||
publishedAt: { gt: Date | undefined } | { lt: Date | undefined }
|
||||
[K: string]: { gt: Date | undefined } | { lt: Date | undefined }
|
||||
}
|
||||
}
|
||||
| {
|
||||
|
|
|
|||
Loading…
Reference in a new issue