add socket.io back, cleanup
Change-Id: I74e043268c23fb45371f1e397ca2931ca177afc3
diff --git a/JamiDaemon.js b/JamiDaemon.js
index 00583d2..6eeaa2c 100755
--- a/JamiDaemon.js
+++ b/JamiDaemon.js
@@ -25,7 +25,7 @@
const require = createRequire(import.meta.url);
class JamiDaemon {
- constructor() {
+ constructor(onMessage) {
this.accounts = []
this.dring = require("./dring.node")
this.dring.init({
@@ -146,7 +146,7 @@
}
account.removeConversation(conversationId)
},
- "ConversationLoaded": (accountId, conversationId, messages) => {
+ "ConversationLoaded": (id, accountId, conversationId, messages) => {
console.log(`conversationLoaded: ${accountId} ${conversationId}`)
console.log(messages)
const account = this.getAccount(accountId)
@@ -156,7 +156,11 @@
}
const conversation = account.getConversation(conversationId)
if (conversation) {
- conversation.addLoadedMessages(message)
+ conversation.addLoadedMessages(messages)
+ const request = conversation.requests[id]
+ if (request) {
+ request.resolve(messages)
+ }
}
},
"MessageReceived": (accountId, conversationId, message) => {
@@ -170,6 +174,8 @@
const conversation = account.getConversation(conversationId)
if (conversation) {
conversation.addMessage(message)
+ if (onMessage)
+ onMessage(account, conversation, message)
}
},
"ConversationRequestReceived": (accountId, conversationId, request) => {
@@ -318,17 +324,37 @@
return {}
}
return JamiDaemon.vectToJs(this.dring.getDefaultModerators(accountId))
- .map(contactId => account.getContactFromCache(contctId))
+ .map(contactId => account.getContactFromCache(contactId))
}
- setDefaultModerators(accountId, moderators) {
+ addDefaultModerator(accountId, uri) {
+ this.dring.setDefaultModerator(accountId, uri, true)
+ }
+ removeDefaultModerator(accountId, uri) {
+ this.dring.setDefaultModerator(accountId, uri, false)
}
sendMessage(accountId, conversationId, message) {
this.dring.sendMessage(accountId, conversationId, message, "")
}
+ loadMessages(accountId, conversationId, fromMessage) {
+ const account = this.getAccount(accountId)
+ if (!account)
+ throw new Error('Unknown account')
+ const conversation = account.getConversation(conversationId)
+ if (!conversation)
+ throw new Error(`Unknown conversation ${conversationId}`)
+
+ return new Promise((resolve, reject) => {
+ if (!conversation.requests)
+ conversation.requests = {}
+ const requestId = this.dring.loadConversationMessages(accountId, conversationId, fromMessage || "", 32)
+ conversation.requests[requestId] = {resolve, reject}
+ })
+ }
+
boolToStr(bool) {
return bool ? "true" : "false"
}