filter out archived items by default when importing from pocket

This commit is contained in:
Hongbo Wu
2023-10-30 11:47:54 +08:00
parent d84aae1d8e
commit 8b6dbf0604
3 changed files with 18 additions and 7 deletions

View File

@ -12,6 +12,7 @@ interface IntegrationRequest {
integrationId: string
syncAt: number // unix timestamp in milliseconds
integrationName: string
includeArchived?: boolean
}
interface Claims {
@ -229,6 +230,7 @@ export const importer = Sentry.GCPFunction.wrapHttpFunction(
token: claims.token,
since,
offset,
includeArchived: req.body.includeArchived,
})
syncedAt = retrieved.since || Date.now()
retrievedData = retrieved.data

View File

@ -16,6 +16,7 @@ export interface RetrieveRequest {
since?: number // unix timestamp in milliseconds
count?: number
offset?: number
includeArchived?: boolean
}
export abstract class IntegrationClient {

View File

@ -95,6 +95,7 @@ export class PocketClient extends IntegrationClient {
since = 0,
count = 100,
offset = 0,
includeArchived = false,
}: RetrieveRequest): Promise<RetrievedResult> => {
const pocketData = await this.retrievePocketData(
token,
@ -112,13 +113,20 @@ export class PocketClient extends IntegrationClient {
'1': 'ARCHIVED',
'2': 'DELETED',
}
const data = pocketItems.map((item) => ({
url: item.given_url,
labels: item.tags
? Object.values(item.tags).map((tag) => tag.tag)
: undefined,
state: statusToState[item.status],
}))
const data = pocketItems
.map((item) => ({
url: item.given_url,
labels: item.tags
? Object.values(item.tags).map((tag) => tag.tag)
: undefined,
state: statusToState[item.status],
}))
.filter((item) => {
if (item.state === 'DELETED') {
return false
}
return includeArchived || item.state !== 'ARCHIVED'
})
if (pocketData.error) {
throw new Error(`Error retrieving pocket data: ${pocketData.error}`)