@ournet/news-data
Version:
Ournet news data module
43 lines (42 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const dynamo_item_1 = require("dynamo-item");
const dynamo_event_1 = require("./dynamo-event");
const config_1 = require("../config");
class DynamoLatestEventHelper {
static mapFromEvent(data) {
const item = {
eventId: data.id,
createdAt: data.createdAt,
expiresAt: DynamoLatestEventHelper.expiresAt(new Date(data.createdAt)),
locale: DynamoLatestEventHelper.createLocaleKey(data),
};
return item;
}
static createLocaleKey(locale) {
return dynamo_event_1.DynamoEventHelper.createLocaleKey(locale);
}
static expiresAt(date) {
date = new Date(date);
date.setDate(date.getDate() + config_1.LATEST_EVENT_EXPIRE_DAYS);
return Math.floor(date.getTime() / 1000);
}
}
exports.DynamoLatestEventHelper = DynamoLatestEventHelper;
class LatestEventModel extends dynamo_item_1.DynamoItem {
constructor(client, tableSuffix) {
super({
hashKey: {
name: 'locale',
type: 'S'
},
rangeKey: {
name: 'createdAt',
type: 'S'
},
name: 'latest_events',
tableName: `ournet_latest_events_${tableSuffix}`,
}, client);
}
}
exports.LatestEventModel = LatestEventModel;