Add method to delete all private messages to REST API

Needed for https://code.briarproject.org/briar/briar-gtk/-/issues/11.

Fixes #1782
This commit is contained in:
Nico Alt
2020-09-25 18:30:44 +02:00
parent 1f246637e2
commit 6c6dbfd357
5 changed files with 46 additions and 0 deletions

View File

@@ -89,6 +89,9 @@ constructor(
path("/messages/:contactId/read") {
post { ctx -> messagingController.markMessageRead(ctx) }
}
path("/messages/:contactId/all") {
delete { ctx -> messagingController.deleteAllMessages(ctx) }
}
path("/forums") {
get { ctx -> forumController.list(ctx) }
post { ctx -> forumController.create(ctx) }

View File

@@ -10,4 +10,6 @@ interface MessagingController {
fun markMessageRead(ctx: Context): Context
fun deleteAllMessages(ctx: Context): Context
}

View File

@@ -106,6 +106,16 @@ constructor(
return MessageId(idBytes)
}
override fun deleteAllMessages(ctx: Context): Context {
val contactId = ctx.getContactIdFromPathParam()
try {
conversationManager.deleteAllMessages(contactId)
} catch (e: NoSuchContactException) {
throw NotFoundResponse()
}
return ctx
}
override fun eventOccurred(e: Event) {
when (e) {
is ConversationMessageReceivedEvent<*> -> {