34 lines
769 B
TypeScript
34 lines
769 B
TypeScript
import * as _ from 'lodash';
|
|
import { Cache } from './cache';
|
|
import { AdCachedPosting, AdCacheRecord, AdCache } from './ad-cache';
|
|
|
|
export interface ChannelCachedPosting extends AdCachedPosting {
|
|
channelName: string;
|
|
datePosted: Date;
|
|
message: string;
|
|
}
|
|
|
|
export interface ChannelPosting extends ChannelCachedPosting {
|
|
name: string;
|
|
}
|
|
|
|
export class ChannelCacheRecord extends AdCacheRecord {}
|
|
|
|
|
|
export class ChannelConversationCache extends AdCache<ChannelCacheRecord> {
|
|
|
|
register(ad: ChannelPosting): void {
|
|
const k = Cache.nameKey(ad.name);
|
|
|
|
if (k in this.cache) {
|
|
const adh = this.cache[k];
|
|
|
|
adh.add(ad);
|
|
return;
|
|
}
|
|
|
|
this.cache[k] = new ChannelCacheRecord(ad.name, ad);
|
|
}
|
|
|
|
}
|