mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Refactor PrivateMessageHeader to ConversationMessageHeader base-class
This is preparation for adding attachments to private messages
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package org.briarproject.briar.headless.event
|
||||
|
||||
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent
|
||||
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent
|
||||
import org.briarproject.briar.headless.messaging.output
|
||||
import javax.annotation.concurrent.Immutable
|
||||
|
||||
@@ -9,5 +9,5 @@ internal class OutputEvent(val name: String, val data: Any) {
|
||||
val type = "event"
|
||||
}
|
||||
|
||||
internal fun PrivateMessageReceivedEvent<*>.output(text: String) =
|
||||
internal fun ConversationMessageReceivedEvent<*>.output(text: String) =
|
||||
messageHeader.output(contactId, text)
|
||||
|
||||
@@ -15,13 +15,17 @@ import org.briarproject.bramble.api.system.Clock
|
||||
import org.briarproject.bramble.util.StringUtils.utf8IsTooLong
|
||||
import org.briarproject.briar.api.blog.BlogInvitationRequest
|
||||
import org.briarproject.briar.api.blog.BlogInvitationResponse
|
||||
import org.briarproject.briar.api.conversation.ConversationManager
|
||||
import org.briarproject.briar.api.conversation.ConversationMessageVisitor
|
||||
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent
|
||||
import org.briarproject.briar.api.forum.ForumInvitationRequest
|
||||
import org.briarproject.briar.api.forum.ForumInvitationResponse
|
||||
import org.briarproject.briar.api.introduction.IntroductionRequest
|
||||
import org.briarproject.briar.api.introduction.IntroductionResponse
|
||||
import org.briarproject.briar.api.messaging.*
|
||||
import org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH
|
||||
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent
|
||||
import org.briarproject.briar.api.messaging.MessagingManager
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageFactory
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageHeader
|
||||
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest
|
||||
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse
|
||||
import org.briarproject.briar.headless.event.WebSocketController
|
||||
@@ -34,7 +38,7 @@ import javax.annotation.concurrent.Immutable
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
internal const val EVENT_PRIVATE_MESSAGE = "PrivateMessageReceivedEvent"
|
||||
internal const val EVENT_PRIVATE_MESSAGE = "ConversationMessageReceivedEvent"
|
||||
|
||||
@Immutable
|
||||
@Singleton
|
||||
@@ -77,7 +81,7 @@ constructor(
|
||||
|
||||
override fun eventOccurred(e: Event) {
|
||||
when (e) {
|
||||
is PrivateMessageReceivedEvent<*> -> dbExecutor.execute {
|
||||
is ConversationMessageReceivedEvent<*> -> dbExecutor.execute {
|
||||
val text = messagingManager.getMessageText(e.messageHeader.id)
|
||||
webSocketController.sendEvent(EVENT_PRIVATE_MESSAGE, e.output(text))
|
||||
}
|
||||
@@ -97,7 +101,7 @@ constructor(
|
||||
private class JsonVisitor(
|
||||
private val contactId: ContactId,
|
||||
private val messagingManager: MessagingManager
|
||||
) : PrivateMessageVisitor<JsonDict> {
|
||||
) : ConversationMessageVisitor<JsonDict> {
|
||||
|
||||
override fun visitPrivateMessageHeader(h: PrivateMessageHeader) =
|
||||
h.output(contactId, messagingManager.getMessageText(h.id))
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package org.briarproject.briar.headless.messaging
|
||||
|
||||
import org.briarproject.bramble.api.contact.ContactId
|
||||
import org.briarproject.briar.api.conversation.ConversationMessageHeader
|
||||
import org.briarproject.briar.api.messaging.PrivateMessage
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageHeader
|
||||
import org.briarproject.briar.headless.json.JsonDict
|
||||
|
||||
internal fun PrivateMessageHeader.output(contactId: ContactId) = JsonDict(
|
||||
internal fun ConversationMessageHeader.output(contactId: ContactId) = JsonDict(
|
||||
"type" to "PrivateMessage",
|
||||
"contactId" to contactId.int,
|
||||
"timestamp" to timestamp,
|
||||
@@ -17,7 +17,7 @@ internal fun PrivateMessageHeader.output(contactId: ContactId) = JsonDict(
|
||||
"groupId" to groupId.bytes
|
||||
)
|
||||
|
||||
internal fun PrivateMessageHeader.output(contactId: ContactId, text: String?): JsonDict {
|
||||
internal fun ConversationMessageHeader.output(contactId: ContactId, text: String?): JsonDict {
|
||||
val dict = output(contactId)
|
||||
dict["text"] = text
|
||||
return dict
|
||||
|
||||
@@ -2,16 +2,16 @@ package org.briarproject.briar.headless.messaging
|
||||
|
||||
import org.briarproject.bramble.api.contact.ContactId
|
||||
import org.briarproject.briar.api.blog.BlogInvitationRequest
|
||||
import org.briarproject.briar.api.conversation.ConversationMessageHeader
|
||||
import org.briarproject.briar.api.conversation.ConversationRequest
|
||||
import org.briarproject.briar.api.forum.ForumInvitationRequest
|
||||
import org.briarproject.briar.api.introduction.IntroductionRequest
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageHeader
|
||||
import org.briarproject.briar.api.messaging.PrivateRequest
|
||||
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest
|
||||
import org.briarproject.briar.api.sharing.InvitationRequest
|
||||
import org.briarproject.briar.headless.json.JsonDict
|
||||
|
||||
internal fun PrivateRequest<*>.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateMessageHeader).output(contactId, text)
|
||||
internal fun ConversationRequest<*>.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as ConversationMessageHeader).output(contactId, text)
|
||||
dict.putAll(
|
||||
"sessionId" to sessionId.bytes,
|
||||
"name" to name,
|
||||
@@ -21,7 +21,7 @@ internal fun PrivateRequest<*>.output(contactId: ContactId): JsonDict {
|
||||
}
|
||||
|
||||
internal fun IntroductionRequest.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateRequest<*>).output(contactId)
|
||||
val dict = (this as ConversationRequest<*>).output(contactId)
|
||||
dict.putAll(
|
||||
"type" to "IntroductionRequest",
|
||||
"alreadyContact" to isContact
|
||||
@@ -30,7 +30,7 @@ internal fun IntroductionRequest.output(contactId: ContactId): JsonDict {
|
||||
}
|
||||
|
||||
internal fun InvitationRequest<*>.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateRequest<*>).output(contactId)
|
||||
val dict = (this as ConversationRequest<*>).output(contactId)
|
||||
dict["canBeOpened"] = canBeOpened()
|
||||
return dict
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ import org.briarproject.briar.api.blog.BlogInvitationResponse
|
||||
import org.briarproject.briar.api.forum.ForumInvitationResponse
|
||||
import org.briarproject.briar.api.introduction.IntroductionResponse
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageHeader
|
||||
import org.briarproject.briar.api.messaging.PrivateResponse
|
||||
import org.briarproject.briar.api.conversation.ConversationResponse
|
||||
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse
|
||||
import org.briarproject.briar.api.sharing.InvitationResponse
|
||||
import org.briarproject.briar.headless.json.JsonDict
|
||||
|
||||
internal fun PrivateResponse.output(contactId: ContactId): JsonDict {
|
||||
internal fun ConversationResponse.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateMessageHeader).output(contactId)
|
||||
dict.putAll(
|
||||
"sessionId" to sessionId.bytes,
|
||||
@@ -21,7 +21,7 @@ internal fun PrivateResponse.output(contactId: ContactId): JsonDict {
|
||||
}
|
||||
|
||||
internal fun IntroductionResponse.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateResponse).output(contactId)
|
||||
val dict = (this as ConversationResponse).output(contactId)
|
||||
dict.putAll(
|
||||
"type" to "IntroductionResponse",
|
||||
"introducedAuthor" to introducedAuthor.output(),
|
||||
@@ -31,7 +31,7 @@ internal fun IntroductionResponse.output(contactId: ContactId): JsonDict {
|
||||
}
|
||||
|
||||
internal fun InvitationResponse.output(contactId: ContactId): JsonDict {
|
||||
val dict = (this as PrivateResponse).output(contactId)
|
||||
val dict = (this as ConversationResponse).output(contactId)
|
||||
dict["shareableId"] = shareableId.bytes
|
||||
return dict
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user