|
|
|
@ -12,7 +12,6 @@ import {
|
|
|
|
|
import { PendingMessageCache } from './PendingMessageCache';
|
|
|
|
|
import { JobQueue, TypedEventEmitter } from '../utils';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Used for ExampleMessage
|
|
|
|
|
import { v4 as uuid } from 'uuid';
|
|
|
|
|
import { SignalService } from '../../protobuf';
|
|
|
|
@ -59,18 +58,15 @@ export class MessageQueue implements MessageQueueInterface {
|
|
|
|
|
const userDevices = [...pairedDevices, user];
|
|
|
|
|
|
|
|
|
|
console.log('[vince] userDevices:', userDevices);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public send(device: string, message: ContentMessage) {
|
|
|
|
|
// throw new Error('Method not implemented.');
|
|
|
|
|
|
|
|
|
|
// Validation; early exists?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TESTING
|
|
|
|
|
console.log(`[vince] send: Queueing message`, message);
|
|
|
|
|
this.queue(device, message);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public sendToGroup(message: ContentMessage | OpenGroupMessage) {
|
|
|
|
|
throw new Error('Method not implemented.');
|
|
|
|
@ -82,39 +78,28 @@ export class MessageQueue implements MessageQueueInterface {
|
|
|
|
|
// PSEDUOCODE
|
|
|
|
|
// if message is undefined
|
|
|
|
|
// returnt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// for each of our device excluding current device:
|
|
|
|
|
// queue(device, syncMessage)
|
|
|
|
|
|
|
|
|
|
// throw new Error('Method not implemented.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async processPending(device: string) {
|
|
|
|
|
// TODO: implement
|
|
|
|
|
|
|
|
|
|
// PSEDUDOCODE
|
|
|
|
|
// messages = PendingMessageCache.getPendingMessages(device)
|
|
|
|
|
// isMediumGroup = device is medium group
|
|
|
|
|
// hasSession = SessionManager.hasSession(device)
|
|
|
|
|
|
|
|
|
|
// if !isMediumGroup && !hasSession
|
|
|
|
|
// SessionManager.sendSessionRequestIfNeeded()
|
|
|
|
|
// return // Don't process any more messages
|
|
|
|
|
|
|
|
|
|
// jobQueue = getJobQueue(device)
|
|
|
|
|
// for each message:
|
|
|
|
|
// if !jobQueue.has(message.uuid)
|
|
|
|
|
// promise = jobQueue.queue(message.uuid, MessageSender.send(message))
|
|
|
|
|
// promise.then().catch() // Add or remove from pending message cache on success and failure
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Promise shouldn't be returned; we're firing an event when processed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private processAllPending() {
|
|
|
|
|
// TODO: Get all devices which are pending here
|
|
|
|
|
}
|
|
|
|
@ -136,8 +121,6 @@ export class MessageQueue implements MessageQueueInterface {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log(`[vince] queue: Message added to the queue`, message);
|
|
|
|
|
|
|
|
|
|
// Add the item to the queue
|
|
|
|
@ -154,7 +137,6 @@ export class MessageQueue implements MessageQueueInterface {
|
|
|
|
|
// Saving offline and stuff
|
|
|
|
|
|
|
|
|
|
// Attach to event
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private queueOpenGroupMessage(message: OpenGroupMessage) {
|
|
|
|
|