Add soft delete of pages by updating page state to Deleted

This commit is contained in:
Hongbo Wu
2022-07-29 18:10:05 +08:00
parent 83f988bb35
commit 7ce183d6f8
2 changed files with 15 additions and 15 deletions

View File

@ -224,12 +224,16 @@ export const updatePage = async (
if (body.result !== 'updated') return false
if (page.state === ArticleSavingRequestStatus.Deleted) {
await ctx.pubsub.entityDeleted(EntityType.PAGE, id, ctx.uid)
return true
}
await ctx.pubsub.entityUpdated<Partial<Page>>(
EntityType.PAGE,
{ ...page, id },
ctx.uid
)
return true
} catch (e) {
if (
@ -255,11 +259,7 @@ export const deletePage = async (
refresh: ctx.refresh,
})
if (body.deleted === 0) return false
await ctx.pubsub.entityDeleted(EntityType.PAGE, id, ctx.uid)
return true
return body.deleted !== 0
} catch (e) {
if (
e instanceof ResponseError &&
@ -359,10 +359,10 @@ export const searchPages = async (
const sortOrder = sort?.order || SortOrder.DESCENDING
// default sort by saved_at
const sortField = sort?.by || SortBy.SAVED
const includeLabels = labelFilters.filter(
const includeLabels = labelFilters?.filter(
(filter) => filter.type === LabelFilterType.INCLUDE
)
const excludeLabels = labelFilters.filter(
const excludeLabels = labelFilters?.filter(
(filter) => filter.type === LabelFilterType.EXCLUDE
)
@ -407,16 +407,16 @@ export const searchPages = async (
if (readFilter !== ReadFilter.ALL) {
appendReadFilter(body, readFilter)
}
if (hasFilters.length > 0) {
if (hasFilters && hasFilters.length > 0) {
appendHasFilters(body, hasFilters)
}
if (includeLabels.length > 0) {
if (includeLabels && includeLabels.length > 0) {
appendIncludeLabelFilter(body, includeLabels)
}
if (excludeLabels.length > 0) {
if (excludeLabels && excludeLabels.length > 0) {
appendExcludeLabelFilter(body, excludeLabels)
}
if (dateFilters.length > 0) {
if (dateFilters && dateFilters.length > 0) {
appendDateFilters(body, dateFilters)
}
if (termFilters) {

View File

@ -264,9 +264,9 @@ export interface PageSearchArgs {
inFilter?: InFilter
readFilter?: ReadFilter
typeFilter?: PageType
labelFilters: LabelFilter[]
hasFilters: HasFilter[]
dateFilters: DateFilter[]
labelFilters?: LabelFilter[]
hasFilters?: HasFilter[]
dateFilters?: DateFilter[]
termFilters?: FieldFilter[]
matchFilters?: FieldFilter[]
includePending?: boolean | null