@wepublish/api
Version:
API core for we.publish.
37 lines (36 loc) • 1.41 kB
TypeScript
import { ImportEventArgs, EventFromSource, ImportedEventFilter, ImportedEventSort, ImportedEventsDocument, SingleEventFilter } from './events-import.model';
import { PrismaClient } from '@prisma/client';
import { SortOrder } from "../../../../utils-api/src";
export interface ImportedEventsResolverParams {
filter: ImportedEventFilter;
order: SortOrder;
skip: number;
take: number;
sort: ImportedEventSort;
}
export interface ImportedEventResolverParams {
id: string;
}
export interface ImportedEventParams {
id: string;
}
export interface CreateEventParams {
id: string;
}
export interface EventsProvider {
name: string;
importedEvents(): Promise<EventFromSource[]>;
importedEvent({ id }: ImportedEventResolverParams): Promise<EventFromSource>;
createEvent({ id }: CreateEventParams): Promise<string>;
}
export declare const EVENT_IMPORT_PROVIDER: unique symbol;
export declare class EventsImportService {
private providers;
private prisma;
constructor(providers: EventsProvider[], prisma: PrismaClient);
importedEvents({ filter, skip, take }: ImportedEventsResolverParams): Promise<ImportedEventsDocument>;
importedEvent(filter: SingleEventFilter): Promise<EventFromSource>;
createEventFromSource({ id, source }: ImportEventArgs): Promise<string>;
importedEventsIds(): Promise<string[]>;
getProviders(): Promise<string[]>;
}