UNPKG

@ournet/news-data

Version:
75 lines (74 loc) 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const dynamo_item_1 = require("dynamo-item"); const dynamo_news_1 = require("./dynamo-news"); class TopicNewsHelper { static create(locale, newsId, publishedAt, topics, expiresAt) { return topics.map((topic) => { const item = { newsId, publishedAt, expiresAt, topicId: topic.id, locale: dynamo_news_1.DynamoNewsItemHelper.createLocaleKey(locale) }; return item; }); } } exports.TopicNewsHelper = TopicNewsHelper; class TopicNewsModel extends dynamo_item_1.DynamoItem { localeLastTopicsIndexName() { return "locale-last-topics-index"; } topicLastNewsIndexName() { return "topic-last-news-index"; } constructor(client, tableSuffix) { super({ hashKey: { name: "topicId", type: "S" }, rangeKey: { name: "newsId", type: "S" }, name: "topic_news", tableName: `ournet_news__topic_${tableSuffix}`, indexes: [ { name: "topic-last-news-index", hashKey: { name: "topicId", type: "S" }, rangeKey: { name: "publishedAt", type: "S" }, type: "LOCAL", projection: { type: "KEYS_ONLY" } }, { name: "locale-last-topics-index", hashKey: { name: "locale", type: "S" }, rangeKey: { name: "publishedAt", type: "S" }, type: "GLOBAL", projection: { type: "KEYS_ONLY" } } ] }, client); } } exports.TopicNewsModel = TopicNewsModel;