From 819f0d6d976d568047f587f4c48a723e1e6d3b3e Mon Sep 17 00:00:00 2001
From: Kristina <kristin.fefelova@gmail.com>
Date: Tue, 23 Apr 2024 21:34:45 +0400
Subject: [PATCH] Add measure for chat message create (#5441)

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
---
 .../chat-message/ChatMessageInput.svelte        | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte b/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte
index 8dfa8ba71b..bba0cb3bb3 100644
--- a/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte
+++ b/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte
@@ -101,7 +101,7 @@
 
   async function onMessage (event: CustomEvent) {
     loading = true
-
+    const doneOp = await getClient().measure(`chunter.create.${_class}`)
     try {
       draftController.remove()
       inputRef.removeDraft(false)
@@ -115,7 +115,12 @@
       // Remove draft from Local Storage
       currentMessage = getDefault()
       _id = currentMessage._id
+      const d1 = Date.now()
+      void doneOp().then((res) => {
+        console.log(`create.${_class} measure`, res, Date.now() - d1)
+      })
     } catch (err: any) {
+      void doneOp()
       Analytics.handleError(err)
       console.error(err)
     }
@@ -125,11 +130,12 @@
 
   async function createMessage (event: CustomEvent) {
     const { message, attachments } = event.detail
+    const operations = client.apply(_id)
 
     if (_class === chunter.class.ThreadMessage) {
       const parentMessage = object as ActivityMessage
 
-      await client.addCollection<ActivityMessage, ThreadMessage>(
+      await operations.addCollection<ActivityMessage, ThreadMessage>(
         chunter.class.ThreadMessage,
         parentMessage.space,
         parentMessage._id,
@@ -146,15 +152,15 @@
 
       clear()
 
-      await client.update(parentMessage, { lastReply: Date.now() })
+      await operations.update(parentMessage, { lastReply: Date.now() })
 
       const hasPerson = !!parentMessage.repliedPersons?.includes(account.person)
 
       if (!hasPerson) {
-        await client.update(parentMessage, { $push: { repliedPersons: account.person } })
+        await operations.update(parentMessage, { $push: { repliedPersons: account.person } })
       }
     } else {
-      await client.addCollection<Doc, ChatMessage>(
+      await operations.addCollection<Doc, ChatMessage>(
         _class,
         object.space,
         object._id,
@@ -165,6 +171,7 @@
       )
       clear()
     }
+    await operations.commit()
   }
 
   async function editMessage (event: CustomEvent) {