@ournet/news-data
Version:
Ournet news data module
31 lines (30 loc) • 2.21 kB
TypeScript
import DynamoDB = require("aws-sdk/clients/dynamodb");
import { BaseRepository, RepositoryUpdateData, RepositoryAccessOptions } from "@ournet/domain";
import { Topic, NewsEvent, EventRepository, LatestEventsQueryParams, LatestEventsByTopicQueryParams, CountEventsQueryParams, CountEventsByTopicQueryParams, TopItem, TrendingTopicsQueryParams, SimilarEventsByTopicsQueryParams } from "@ournet/news-domain";
import { EventModel } from "./dynamo-event";
import { TopicEventModel } from "./topic-event";
import { Locale } from "../common";
import { LatestEventModel } from "./dynamo-latest-event";
export declare class DynamoEventRepository extends BaseRepository<NewsEvent> implements EventRepository {
protected model: EventModel;
protected latestModel: LatestEventModel;
protected topicModel: TopicEventModel;
constructor(client: DynamoDB.DocumentClient, tableSuffix: string);
similarByTopics(params: SimilarEventsByTopicsQueryParams, options?: RepositoryAccessOptions<NewsEvent>): Promise<NewsEvent[]>;
viewNewsEvent(id: string): Promise<number>;
innerCreate(data: NewsEvent): Promise<NewsEvent>;
innerUpdate(data: RepositoryUpdateData<NewsEvent>): Promise<NewsEvent>;
delete(id: string): Promise<boolean>;
exists(id: string): Promise<boolean>;
getById(id: string, options?: RepositoryAccessOptions<NewsEvent>): Promise<NewsEvent | null>;
getByIds(ids: string[], options?: RepositoryAccessOptions<NewsEvent>): Promise<NewsEvent[]>;
latest(params: LatestEventsQueryParams, options?: RepositoryAccessOptions<NewsEvent>): Promise<NewsEvent[]>;
latestByTopic(params: LatestEventsByTopicQueryParams, options?: RepositoryAccessOptions<NewsEvent>): Promise<NewsEvent[]>;
count(params: CountEventsQueryParams): Promise<number>;
countByTopic(params: CountEventsByTopicQueryParams): Promise<number>;
topTopics(params: LatestEventsQueryParams): Promise<TopItem[]>;
trendingTopics(params: TrendingTopicsQueryParams): Promise<TopItem[]>;
protected putTopicEvent(locale: Locale, eventId: string, createdAt: string, topics: Topic[]): Promise<void>;
deleteStorage(): Promise<void>;
createStorage(): Promise<void>;
}