mirror of
https://github.com/balzack/databag.git
synced 2025-05-05 07:55:15 +00:00
defining input/output of contact interface
This commit is contained in:
parent
b7d5ae9b4c
commit
646deacb8d
@ -1,6 +1,8 @@
|
|||||||
import { EventEmitter } from 'eventemitter3';
|
import { EventEmitter } from 'eventemitter3';
|
||||||
import type { Contact, Logging } from './api';
|
import type { Contact, Logging } from './api';
|
||||||
import type { Card, Topic, Asset, Tag, Profile, Participant} from './types';
|
import type { Card, Topic, Asset, Tag, Profile, Participant} from './types';
|
||||||
|
import type { CardEntity } from './entities';
|
||||||
|
import type { ArticleRevision, ArticleDetail, ChannelRevision, ChannelSummary, ChannelDetail, CardRevision, CardNotification, CardProfile, CardDetail } from './items';
|
||||||
import { Store } from './store';
|
import { Store } from './store';
|
||||||
|
|
||||||
export class ContactModule implements Contact {
|
export class ContactModule implements Contact {
|
||||||
@ -12,6 +14,21 @@ export class ContactModule implements Contact {
|
|||||||
private secure: boolean;
|
private secure: boolean;
|
||||||
private emitter: EventEmitter;
|
private emitter: EventEmitter;
|
||||||
|
|
||||||
|
private store: Store;
|
||||||
|
private revision: number;
|
||||||
|
private nextRevision: number | null;
|
||||||
|
private syncing: boolean;
|
||||||
|
private closing: boolean;
|
||||||
|
|
||||||
|
// view of cards
|
||||||
|
private cardEntries: Map<string, { revision: CardRevision, profile: CardProfile, detail: CardDetails, card: Card }>
|
||||||
|
|
||||||
|
// view of articles
|
||||||
|
private articleEntries: Map<string, Map<string, { revision: ArticleRevision, detail: ArticleDetail, article: Article }>>
|
||||||
|
|
||||||
|
// view of channels
|
||||||
|
private channelEntries: Map<string, Map<string, { revision ChannelRevision, summary: ChannelSummary, detail: ChannelDetail, channel: Channel }>>;
|
||||||
|
|
||||||
constructor(log: Logging, store: Store, guid: string, token: string, node: string, secure: boolean) {
|
constructor(log: Logging, store: Store, guid: string, token: string, node: string, secure: boolean) {
|
||||||
this.guid = guid;
|
this.guid = guid;
|
||||||
this.token = token;
|
this.token = token;
|
||||||
@ -19,16 +36,119 @@ export class ContactModule implements Contact {
|
|||||||
this.secure = secure;
|
this.secure = secure;
|
||||||
this.log = log;
|
this.log = log;
|
||||||
this.emitter = new EventEmitter();
|
this.emitter = new EventEmitter();
|
||||||
|
|
||||||
|
this.revision = 0;
|
||||||
|
this.sycning = true;
|
||||||
|
this.closing = false;
|
||||||
|
this.nextRevision = null;
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private async sync(): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public addCardListener(ev: (cards: Card[]) => void): void {
|
public addCardListener(ev: (cards: Card[]) => void): void {
|
||||||
this.emitter.on('card', ev);
|
this.emitter.on('card', ev);
|
||||||
|
const cards = Array.from(cardEntries, ([cardId, entry]) => (entry.card));
|
||||||
|
ev(cards);
|
||||||
}
|
}
|
||||||
|
|
||||||
public removeCardListener(ev: (cards: Card[]) => void): void {
|
public removeCardListener(ev: (cards: Card[]) => void): void {
|
||||||
this.emitter.off('card', ev);
|
this.emitter.off('card', ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private emitCards(cards: Card[]) {
|
||||||
|
this.emitter.emit('card', cards);
|
||||||
|
}
|
||||||
|
|
||||||
|
public addArticleListener(id: string | null, ev: (arg: { cardId: string, articles: Article[] }) => void): void {
|
||||||
|
if (id) {
|
||||||
|
const cardId = id as string;
|
||||||
|
this.emitter.on(`article::${cardId}`, ev);
|
||||||
|
const entries = this.articleEntries.get(cardId);
|
||||||
|
if (entries) {
|
||||||
|
const articles = Array.from(entries, ([articleId, entry]) => (entry.article));
|
||||||
|
ev({ cardId, articles });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.emitter.on('article', ev);
|
||||||
|
this.articleEntries.forEach((entries, cardId) => {
|
||||||
|
const articles = Array.from(entries, ([articleId, entry]) => (entry.article));
|
||||||
|
ev({ cardId, articles });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public removeArticleListener(id: string | null, ev: (arg: { cardId: string, articles: Article[] }) => void): void {
|
||||||
|
if (id) {
|
||||||
|
const cardId = id as string;
|
||||||
|
this.emitter.off(`article::${cardId}`, ev);
|
||||||
|
} else {
|
||||||
|
this.emitter.off('article', ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private emitArticles(cardId: string, articles: Article[]) {
|
||||||
|
this.emitter.emit('article', { cardId, articles });
|
||||||
|
this.emitter.emit(`article::${cardId}`, { cardId, articles });
|
||||||
|
}
|
||||||
|
|
||||||
|
public addChannelListener(id: string | null, ev: (arg: { cardId: string, channels: Channel[] }) => void): void {
|
||||||
|
|
||||||
|
if (id) {
|
||||||
|
const cardId = id as string;
|
||||||
|
this.emitter.on(`channel::${cardId}`, ev);
|
||||||
|
const entries = this.channelEntries.get(cardId);
|
||||||
|
if (entries) {
|
||||||
|
const channels = Array.from(entries, ([channelId, entry]) => (entry.channel));
|
||||||
|
ev({ cardId, channels });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.emitter.on('channel', ev);
|
||||||
|
this.channelEntries.forEach((entries, cardId) => {
|
||||||
|
const channels = Array.from(entries, ([channelId, entry]) => (entry.channel));
|
||||||
|
ev({ cardId, channels });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public removeChannelListener(id: string | null, ev: (arg: { cardId: string, channels: Channel[] }) => void): void {
|
||||||
|
if (id) {
|
||||||
|
const cardId = id as string;
|
||||||
|
this.emitter.off(`channel::${cardId}`, ev);
|
||||||
|
} else {
|
||||||
|
this.emitter.off('channel', ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private emitChannels(cardId: string, channels: Channel[]) {
|
||||||
|
this.emitter.emit('channel', { cardId, channels });
|
||||||
|
this.emitter.emit(`channel::${cardId}`, { cardId, channels });
|
||||||
|
}
|
||||||
|
|
||||||
|
public addTopicRevisionListener(cardId: string, channelId: string, ev: (arg: { cardId: string, channelId: string, revision: number }) => void): void {
|
||||||
|
this.emitter.on(`revision::${cardId}::${channelId}`, ev);
|
||||||
|
const card = this.channelEntries.get(cardId);
|
||||||
|
if (card) {
|
||||||
|
const channel = card.get(channelId);
|
||||||
|
if (channel) {
|
||||||
|
const revision = channel.revision.topic;
|
||||||
|
ev({ cardId, channelId, revision });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public removeTopicRevisionListener(cardId: string, channelId: string, ev: (arg: { cardId: string, channelId: string, revision: number }) => void): void {
|
||||||
|
this.emitter.off(`revision::${cardId}::${channelId}`, ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
public emitTopicRevision(cardId: string, channelId: string, revision: number) {
|
||||||
|
this.emitter.emit(`revision::${cardId}::${channelId}`, revision);
|
||||||
|
}
|
||||||
|
|
||||||
public async close(): void {
|
public async close(): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
108
app/sdk/src/items.ts
Normal file
108
app/sdk/src/items.ts
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
export type CardRevision = {
|
||||||
|
detail: number,
|
||||||
|
profile: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CardNotification = {
|
||||||
|
profile: number,
|
||||||
|
article: number,
|
||||||
|
channel: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CardDetail = {
|
||||||
|
status: string,
|
||||||
|
statusUpdated: number,
|
||||||
|
token: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CardProfile = {
|
||||||
|
handle: string,
|
||||||
|
guid: string,
|
||||||
|
name: string,
|
||||||
|
description: string,
|
||||||
|
location: string,
|
||||||
|
imageSet: boolean,
|
||||||
|
node: string,
|
||||||
|
seal: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ChannelRevision = {
|
||||||
|
topic: number,
|
||||||
|
detail: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ChannelSummary = {
|
||||||
|
guid: string,
|
||||||
|
dataType: string,
|
||||||
|
data: string,
|
||||||
|
created: number,
|
||||||
|
updated: number,
|
||||||
|
status: string,
|
||||||
|
transform: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ChannelDetail = {
|
||||||
|
revision: number,
|
||||||
|
dataType: string,
|
||||||
|
data: string,
|
||||||
|
created: number,
|
||||||
|
updated: number,
|
||||||
|
enableImage: boolean,
|
||||||
|
enableAudio: boolean,
|
||||||
|
enableVideo: boolean,
|
||||||
|
enableBinary: boolean,
|
||||||
|
contacts: {
|
||||||
|
groups: [ string ],
|
||||||
|
cards: [ string ],
|
||||||
|
},
|
||||||
|
members: {
|
||||||
|
member: string,
|
||||||
|
pushEnabled: boolean,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ArticleRevision = {
|
||||||
|
detail: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ArticleDetail = {
|
||||||
|
dataType: string,
|
||||||
|
data: string,
|
||||||
|
created: number,
|
||||||
|
updated: number,
|
||||||
|
status: string,
|
||||||
|
contacts?: {
|
||||||
|
cards: [ string ],
|
||||||
|
groups: [ string ],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CardItem = {
|
||||||
|
cardId: string,
|
||||||
|
offsync: boolean,
|
||||||
|
blocked: boolean,
|
||||||
|
revision: CardRevision,
|
||||||
|
profile: CardProfile,
|
||||||
|
detail: CardDetail,
|
||||||
|
remote: CardNotification,
|
||||||
|
sync: CardNotification,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ArticleItem = {
|
||||||
|
cardId: string | null,
|
||||||
|
articleId: string,
|
||||||
|
blocked: boolean,
|
||||||
|
detail: ArticleDetail,
|
||||||
|
unsealedData: any,
|
||||||
|
revision: ArticleRevision,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ChannelItem = {
|
||||||
|
cardId: string | null,
|
||||||
|
channelId: string,
|
||||||
|
blocked: boolean,
|
||||||
|
summary: ChannelSummary,
|
||||||
|
detail: ChannelDetail,
|
||||||
|
unsealedData: any,
|
||||||
|
revision: ChannelRevision,
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
import { Login, ProfileEntity, defaultProfileEntity, ConfigEntity, defaultConfigEntity } from './entities';
|
import { Login, ProfileEntity, defaultProfileEntity, ConfigEntity, defaultConfigEntity } from './entities';
|
||||||
|
import type { ArticleRevision, ArticleDetail, ArticleItem, ChannelItem, CardItem, CardRevision, CardNotification, CardProfile, CardDetail, ChannelRevision, ChannelSummary, ChannelDetail } from './items';
|
||||||
import type { Logging } from './logging';
|
import type { Logging } from './logging';
|
||||||
|
|
||||||
export interface Store {
|
export interface Store {
|
||||||
@ -19,6 +20,34 @@ export interface Store {
|
|||||||
setSettingsRevision(guid: string, revision: number): Promise<void>;
|
setSettingsRevision(guid: string, revision: number): Promise<void>;
|
||||||
getSettingsData(guid: string): Promise<ConfigEntity>;
|
getSettingsData(guid: string): Promise<ConfigEntity>;
|
||||||
setSettingsData(guid: string, data: ConfigEntity): Promise<void>;
|
setSettingsData(guid: string, data: ConfigEntity): Promise<void>;
|
||||||
|
|
||||||
|
getContactRevision(guid: string): Promise<number>;
|
||||||
|
setContactRevision(guid: string, revision: number): Promise<void>;
|
||||||
|
|
||||||
|
getContacts(guid: string): Promise<CardItem[]>;
|
||||||
|
setContactCardRevision(guid: string, cardId: string, revision: CardRevision): Promise<void>;
|
||||||
|
setContactCardProfile(guid: string, cardId: string, profile: CardProfile): Promise<void>;
|
||||||
|
setContactCardDetail(guid: string, cardId: string, detail: CardDetail): Promise<void>;
|
||||||
|
setContactCardBlocked(guid: string, cardId: string, blocked: boolean): Promise<void>;
|
||||||
|
|
||||||
|
setContactCardRemoteRevision(guid: string, cardId: string, notification: CardNotification): Promise<void>;
|
||||||
|
setContactCardSyncRevision(guid: string, cardId: string, notification: CardNotification): Promise<void>;
|
||||||
|
setContactCardOffsync(guid: string, cardId: string, offsync: boolean): Promise<void>;
|
||||||
|
|
||||||
|
getContactCardArticles(guid: string): Promise<ArticleItem[]>;
|
||||||
|
setContactCardArticleRevision(guid: string, cardId: string, articleId: string, revision: ArticleRevision): Promise<void>;
|
||||||
|
setContactCardArticleDetail(guid: string, cardId: string, articleId: string, detail: ChannelDetail, unsealedData: any): Promise<void>;
|
||||||
|
setContactCardArticleUnsealed(guid: string, cardId: string, articleId: string, unsealedData: any): Promise<void>;
|
||||||
|
|
||||||
|
getContactCardChannels(guid: string): Promise<ChannelItem[]>;
|
||||||
|
setContactCardChannelBlocked(guid: string, cardId: string, channelId: string, blocked: boolean): Promise<void>;
|
||||||
|
setContactCardChannelRevision(guid: string, cardId: string, channelId: string, revision: ChannelRevision): Promise<void>;
|
||||||
|
setContactCardChannelSummary(guid: string, cardId: string, channelId: string, summary: ChannelSummary): Promise<void>;
|
||||||
|
setContactCardChannelDetail(guid: string, cardId: string, channelId: string, detail: ChannelDetail, unsealedData: any): Promise<void>;
|
||||||
|
setContactCardChannelUnsealed(guid: string, cardId: string, channelId: string, unsealedData: any): Promise<void>;
|
||||||
|
|
||||||
|
setContactCardChannelTopicSyncRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void>;
|
||||||
|
setContactCardChannelTopicRemoteRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SqlStore {
|
export interface SqlStore {
|
||||||
@ -130,6 +159,75 @@ export class OfflineStore implements Store {
|
|||||||
await this.setAppValue(guid, 'account_data', data);
|
await this.setAppValue(guid, 'account_data', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getContactRevision(guid: string): Promise<number> {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactRevision(guid: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContacts(guid: string): Promise<CardItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRevision(guid: string, cardId: string, revision: CardRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardProfile(guid: string, cardId: string, profile: CardProfile): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardDetail(guid: string, cardId: string, detail: CardDetail): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardBlocked(guid: string, cardId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRemoteRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardSyncRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardOffsync(guid: string, cardId: string, offsync: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardArticles(guid: string): Promise<ArticleItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleRevision(guid: string, cardId: string, articleId: string, revision: ArticleRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleDetail(guid: string, cardId: string, articleId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleUnsealed(guid: string, cardId: string, articleId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardChannels(guid: string): Promise<ChannelItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelBlocked(guid: string, cardId: string, channelId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelRevision(guid: string, cardId: string, channelId: string, revision: ChannelRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelSummary(guid: string, cardId: string, channelId: string, summary: ChannelSummary): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelDetail(guid: string, cardId: string, channelId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelUnsealed(guid: string, cardId: string, channelId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicSyncRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicRemoteRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class OnlineStore implements Store {
|
export class OnlineStore implements Store {
|
||||||
@ -210,6 +308,75 @@ export class OnlineStore implements Store {
|
|||||||
public async setSettingsData(guid: string, data: ConfigEntity): Promise<void> {
|
public async setSettingsData(guid: string, data: ConfigEntity): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getContactRevision(guid: string): Promise<number> {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactRevision(guid: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContacts(guid: string): Promise<CardItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRevision(guid: string, cardId: string, revision: CardRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardProfile(guid: string, cardId: string, profile: CardProfile): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardDetail(guid: string, cardId: string, detail: CardDetail): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardBlocked(guid: string, cardId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRemoteRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardSyncRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardOffsync(guid: string, cardId: string, offsync: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardArticles(guid: string): Promise<ArticleItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleRevision(guid: string, cardId: string, articleId: string, revision: ArticleRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleDetail(guid: string, cardId: string, articleId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleUnsealed(guid: string, cardId: string, articleId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardChannels(guid: string): Promise<ChannelItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelBlocked(guid: string, cardId: string, channelId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelRevision(guid: string, cardId: string, channelId: string, revision: ChannelRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelSummary(guid: string, cardId: string, channelId: string, summary: ChannelSummary): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelDetail(guid: string, cardId: string, channelId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelUnsealed(guid: string, cardId: string, channelId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicSyncRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicRemoteRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class NoStore implements Store {
|
export class NoStore implements Store {
|
||||||
@ -264,5 +431,74 @@ export class NoStore implements Store {
|
|||||||
public async setSettingsData(guid: string, data: ConfigEntity): Promise<void> {
|
public async setSettingsData(guid: string, data: ConfigEntity): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getContactRevision(guid: string): Promise<number> {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactRevision(guid: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContacts(guid: string): Promise<CardItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRevision(guid: string, cardId: string, revision: CardRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardProfile(guid: string, cardId: string, profile: CardProfile): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardDetail(guid: string, cardId: string, detail: CardDetail): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardBlocked(guid: string, cardId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardRemoteRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardSyncRevision(guid: string, cardId: string, notification: CardNotification): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardOffsync(guid: string, cardId: string, offsync: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardArticles(guid: string): Promise<ArticleItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleRevision(guid: string, cardId: string, articleId: string, revision: ArticleRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleDetail(guid: string, cardId: string, articleId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardArticleUnsealed(guid: string, cardId: string, articleId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getContactCardChannels(guid: string): Promise<ChannelItem[]> {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelBlocked(guid: string, cardId: string, channelId: string, blocked: boolean): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelRevision(guid: string, cardId: string, channelId: string, revision: ChannelRevision): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelSummary(guid: string, cardId: string, channelId: string, summary: ChannelSummary): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelDetail(guid: string, cardId: string, channelId: string, detail: ChannelDetail, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelUnsealed(guid: string, cardId: string, channelId: string, unsealedData: any): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicSyncRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public async setContactCardChannelTopicRemoteRevision(guid: string, cardId: string, channelId: string, revision: number): Promise<void> {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ export type Card = {
|
|||||||
id: string,
|
id: string,
|
||||||
status: string,
|
status: string,
|
||||||
statusUpdated: number,
|
statusUpdated: number,
|
||||||
groups: string[],
|
|
||||||
guid: string,
|
guid: string,
|
||||||
handle: string,
|
handle: string,
|
||||||
name: string,
|
name: string,
|
||||||
@ -11,8 +10,6 @@ export type Card = {
|
|||||||
imageSet: boolean,
|
imageSet: boolean,
|
||||||
version: string,
|
version: string,
|
||||||
node: string,
|
node: string,
|
||||||
articles: Article[],
|
|
||||||
channels: Channel[],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Call = {
|
export type Call = {
|
||||||
@ -52,7 +49,7 @@ export type Channel = {
|
|||||||
sealed: boolean,
|
sealed: boolean,
|
||||||
unsealed: boolean;
|
unsealed: boolean;
|
||||||
dataType: string,
|
dataType: string,
|
||||||
data: string,
|
data: any,
|
||||||
created: number,
|
created: number,
|
||||||
updated: number,
|
updated: number,
|
||||||
enableImage: boolean,
|
enableImage: boolean,
|
||||||
@ -90,7 +87,7 @@ export type Topic = {
|
|||||||
sealed: boolean,
|
sealed: boolean,
|
||||||
unsealed: boolean,
|
unsealed: boolean,
|
||||||
dataType: string,
|
dataType: string,
|
||||||
data: string,
|
data: any,
|
||||||
created: number,
|
created: number,
|
||||||
updated: number,
|
updated: number,
|
||||||
status: string,
|
status: string,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user