review-fixes

pull/1175/head
Vincent 5 years ago
parent 48e3ded9d2
commit bffb43dd19

@ -1,3 +1 @@
import { SyncMessage } from './SyncMessage';
export { SyncMessage };
export * from './SyncMessage';

@ -102,7 +102,13 @@ export class MessageQueue implements MessageQueueInterface {
// Open groups
if (message instanceof OpenGroupMessage) {
// No queue needed for Open Groups; send directly
await MessageSender.sendToOpenGroup(message);
try {
await MessageSender.sendToOpenGroup(message);
this.events.emit('success', message);
} catch (e) {
this.events.emit('fail', message, e);
}
return true;
}
@ -113,7 +119,7 @@ export class MessageQueue implements MessageQueueInterface {
public async sendSyncMessage(message: ContentMessage, sendTo: Array<PubKey>) {
// Sync with our devices
const promises = sendTo.map(async device => {
const syncMessage = await SyncMessageUtils.from(message);
const syncMessage = SyncMessageUtils.from(message);
return this.process(device, syncMessage);
});
@ -124,9 +130,10 @@ export class MessageQueue implements MessageQueueInterface {
public async processPending(device: PubKey) {
const messages = this.pendingMessageCache.getForDevice(device);
// TODO: Simpify the isMediumGroup check to not rely on ANY window objects
// const isMediumGroup = messages.some(m => m instanceof MediumGroupMessage);
const isMediumGroup = false;
const hasSession = SessionProtocol.hasSession(device);
const conversation = ConversationController.get(device.key);
const isMediumGroup = conversation.isMediumGroup();
if (!isMediumGroup && !hasSession) {
await SessionProtocol.sendSessionRequestIfNeeded(device);
@ -160,7 +167,13 @@ export class MessageQueue implements MessageQueueInterface {
}
private async process(device: PubKey, message?: ContentMessage) {
if (!message || message instanceof SessionRequestMessage) {
if (!message) {
return;
}
if (message instanceof SessionRequestMessage) {
void SessionProtocol.sendSessionRequest(message, device);
return;
}

@ -10,8 +10,8 @@ import { PubKey } from '../types';
type GroupMessageType = OpenGroupMessage | ClosedGroupMessage;
export interface MessageQueueInterfaceEvents {
success: (message: RawMessage) => void;
fail: (message: RawMessage, error: Error) => void;
success: (message: RawMessage | OpenGroupMessage) => void;
fail: (message: RawMessage | OpenGroupMessage, error: Error) => void;
}
export interface MessageQueueInterface {

@ -8,9 +8,7 @@ import { ConversationController, Whisper } from '../../window';
import { ContentMessage, SyncMessage } from '../messages/outgoing';
export async function from(
message: ContentMessage
): Promise<SyncMessage | undefined> {
export function from(message: ContentMessage): SyncMessage | undefined {
// const { timestamp, identifier } = message;
// Stubbed for now
@ -20,9 +18,9 @@ export async function from(
export async function canSync(message: ContentMessage): Promise<boolean> {
// This function should be agnostic to the device; it shouldn't need
// to know about the recipient
// return Boolean(from(message));
// Stubbed for now
return true;
return Boolean(from(message));
}
export async function getSyncContacts(): Promise<Array<any> | undefined> {

@ -67,3 +67,4 @@ export function generateChatMessage(): ChatMessage {
preview: undefined,
});
}

Loading…
Cancel
Save