Files
omnivore/packages/api/src/services/integrations/integration.ts
Hongbo Wu c1ad9b6f41 cont
2023-10-05 14:27:18 +08:00

38 lines
930 B
TypeScript

import { Integration } from '../../entity/integration'
import { LibraryItem, LibraryItemState } from '../../entity/library_item'
export interface RetrievedData {
url: string
labels?: string[]
state?: LibraryItemState
}
export interface RetrievedResult {
data: RetrievedData[]
hasMore?: boolean
since?: number // unix timestamp in milliseconds
}
export interface RetrieveRequest {
token: string
since?: number // unix timestamp in milliseconds
count?: number
offset?: number
}
export abstract class IntegrationService {
abstract name: string
accessToken = async (token: string): Promise<string | null> => {
return Promise.resolve(null)
}
export = async (
integration: Integration,
items: LibraryItem[]
): Promise<boolean> => {
return Promise.resolve(false)
}
retrieve = async (req: RetrieveRequest): Promise<RetrievedResult> => {
return Promise.resolve({ data: [] })
}
}