web-push-notifications
Version:
Pushwoosh web push notifications
83 lines (82 loc) • 2.48 kB
TypeScript
import { type IInboxMessage } from './InboxMessages.types';
import { type EventBus } from '../core/modules/EventBus';
import { type Api } from '../modules/Api/Api';
import { type Data } from '../modules/Data/Data';
import DateModule from '../modules/DateModule';
import Storage from '../modules/storage/Storage';
import { type TInboxMessagesStoreName } from '../modules/storage/Storage.types';
export default class InboxMessages {
eventBus: EventBus;
data: Data;
api: Api;
storage: Storage;
storeName: TInboxMessagesStoreName;
dateModule: DateModule;
constructor(eventBus: EventBus, data: Data, api: Api, storage?: Storage, dateModule?: DateModule);
/**
* Get inbox messages by api
*/
private getInboxMessages;
/**
* Store parameters for next getInboxMessages request
* @param next
* @param newMessagesCount
*/
private storeGetInboxMessagesRequestParams;
/**
* Put loaded messages. Add delete status to loaded messages if this status set locally.
* @param messages
*/
private putServerMessages;
/**
* Create or update inbox message
*/
putMessage(message: IInboxMessage): Promise<string>;
/**
* Create or update messages pack
* @param messages
*/
putBulkMessages(messages: Array<IInboxMessage>): Promise<Array<string>>;
/**
* Delete messages by codes
* @param codes
*/
deleteMessages(codes: Array<string>): Promise<Array<void>>;
/**
* Delete expired by removal time messages
*/
deleteExpiredMessages(): Promise<Array<void>>;
/**
* Get message by code
* @param code - inbox_id
*/
getMessage(code: string): Promise<IInboxMessage>;
/**
* Get all read messages
*/
getReadOpenMessages(): Promise<Array<IInboxMessage>>;
/**
* Get all unread messages
*/
getDeliveredMessages(): Promise<Array<IInboxMessage>>;
/**
* All messages count
*/
messagesCount(): Promise<number>;
/**
* Get count of messages with status "Delivered"
*/
getDeliveredMessagesCount(): Promise<number>;
/**
* Get count of messages with status "Read"
*/
getReadMessagesCount(): Promise<number>;
/**
* Get count of messages with status "Delivered" and "Read"
*/
getDeliveredReadMessagesCount(): Promise<number>;
/**
* Load messages and sync with locally
*/
updateMessages(): Promise<void>;
}