Refactor PrivateMessageHeader to ConversationMessageHeader base-class

This is preparation for adding attachments to private messages
This commit is contained in:
Torsten Grote
2018-10-30 11:42:30 -03:00
parent 391732b239
commit e3abff5ad8
66 changed files with 310 additions and 242 deletions

View File

@@ -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)

View File

@@ -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))

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}