From a8e6dbdb9dfdbff4313458d706657c2be0e43c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20=C5=A0korpil?= Date: Tue, 27 Dec 2022 22:11:19 +0100 Subject: [PATCH] Fixed old feed deleting --- application/src/Storage/Feeds/createFeed.ts | 1 + application/src/Storage/Feeds/deleteOldFeeds.ts | 15 ++++++++++++++- application/src/Storage/Feeds/updateFeed.ts | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/application/src/Storage/Feeds/createFeed.ts b/application/src/Storage/Feeds/createFeed.ts index c35d005..50fab42 100644 --- a/application/src/Storage/Feeds/createFeed.ts +++ b/application/src/Storage/Feeds/createFeed.ts @@ -30,6 +30,7 @@ export const createFeed = async ( displayName: feedData.displayName, locked: feedData.locked, createdAt: feedData.createdAt.getTime(), + refreshedAt: new Date().getTime(), foundAt: new Date().getTime(), fields: feedData.fields.map((field) => { return { name: field.name, value: field.value } diff --git a/application/src/Storage/Feeds/deleteOldFeeds.ts b/application/src/Storage/Feeds/deleteOldFeeds.ts index 4894be8..850aae3 100644 --- a/application/src/Storage/Feeds/deleteOldFeeds.ts +++ b/application/src/Storage/Feeds/deleteOldFeeds.ts @@ -7,13 +7,26 @@ export const deleteOldFeeds = async ( node: Node ): Promise => { await elastic.indices.refresh({ index: feedIndex }) + // delete by domain and (refreshedAt < node.refreshAttepmtedAt or refreshedAt=null) const result = await elastic.deleteByQuery({ index: feedIndex, query: { bool: { must: [ { match: { domain: node.domain } }, - { range: { refreshedAt: { lt: node.refreshAttemptedAt } } } + { + bool: { + should: [ + { range: { refreshedAt: { lt: node.refreshAttemptedAt } } }, + { + bool: { + must_not: { exists: { field: 'refreshedAt' } } + } + } + ], + minimum_should_match: 1 + } + } ] } } diff --git a/application/src/Storage/Feeds/updateFeed.ts b/application/src/Storage/Feeds/updateFeed.ts index 7944119..250e872 100644 --- a/application/src/Storage/Feeds/updateFeed.ts +++ b/application/src/Storage/Feeds/updateFeed.ts @@ -20,11 +20,11 @@ export const updateFeed = async ( followersCount: feedData.followersCount, followingCount: feedData.followingCount, statusesCount: feedData.statusesCount, - lastStatusAt: feedData.lastStatusAt, + lastStatusAt: feedData.lastStatusAt?.getTime(), description: feedData.description, displayName: feedData.displayName, locked: feedData.locked, - createdAt: feedData.createdAt, + createdAt: feedData.createdAt.getTime(), refreshedAt: new Date().getTime(), type: feedData.type, fields: feedData.fields.map((field) => {