fedicrawl/application/src/Storage/Feeds/updateFeed.ts

43 wiersze
1.3 KiB
TypeScript
Czysty Zwykły widok Historia

2021-12-23 14:14:06 +00:00
import StorageFeedData from './StorageFeedData'
2022-09-14 19:16:04 +00:00
import Feed from '../Definitions/Feed'
import { ElasticClient } from '../ElasticClient'
import feedIndex from '../Definitions/feedIndex'
import getFeed from './getFeed'
2022-09-18 11:32:25 +00:00
import assertDefined from '../assertDefined'
2021-12-23 14:14:06 +00:00
2022-09-18 11:32:25 +00:00
export const updateFeed = async (
elastic: ElasticClient,
feed: Feed,
feedData: StorageFeedData
): Promise<Feed> => {
2022-09-14 19:16:04 +00:00
await elastic.update<Feed>({
index: feedIndex,
id: feed.fullName,
doc: {
2021-12-23 14:14:06 +00:00
url: feedData.url,
bot: feedData.bot,
avatar: feedData.avatar,
followersCount: feedData.followersCount,
followingCount: feedData.followingCount,
statusesCount: feedData.statusesCount,
lastStatusAt: feedData.lastStatusAt,
description: feedData.description,
displayName: feedData.displayName,
locked: feedData.locked,
createdAt: feedData.createdAt,
2022-09-18 11:32:25 +00:00
refreshedAt: new Date().getTime(),
2022-09-14 19:16:04 +00:00
type: feedData.type,
2022-09-18 11:32:25 +00:00
fields: feedData.fields.map((field) => {
2022-09-14 19:16:04 +00:00
return { name: field.name, value: field.value }
}),
extractedEmails: feedData.extractedEmails,
extractedTags: feedData.extractedTags
2021-12-23 14:14:06 +00:00
}
})
2022-09-14 19:16:04 +00:00
console.info('Updated feed', { feedName: feed.name, nodeDomain: feed.domain })
2022-09-18 11:32:25 +00:00
return assertDefined(
await getFeed(elastic, feed.fullName),
'Missing updated feed'
)
2021-12-23 14:14:06 +00:00
}