Page MenuHomePhorge

D3940.1765323498.diff
No OneTemporary

Size
15 KB
Referenced Files
None
Subscribers
None

D3940.1765323498.diff

diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs.h
@@ -0,0 +1,92 @@
+#pragma once
+#include "MessageSpecs/ChangeRoleMessageSpec.h"
+#include "MessageSpecs/ChangeSettingsMessageSpec.h"
+#include "MessageSpecs/CreateEntryMessageSpec.h"
+#include "MessageSpecs/CreateSidebarMessageSpec.h"
+#include "MessageSpecs/CreateSubThreadMessageSpec.h"
+#include "MessageSpecs/CreateThreadMessageSpec.h"
+#include "MessageSpecs/DeleteEntryMessageSpec.h"
+#include "MessageSpecs/EditEntryMessageSpec.h"
+#include "MessageSpecs/MultimediaMessageSpec.h"
+#include "MessageSpecs/RestoreEntryMessageSpec.h"
+#include "MessageSpecs/TextMessageSpec.h"
+#include "MessageSpecs/UnsupportedMessageSpec.h"
+#include "MessageSpecs/UpdateRelationshipMessageSpec.h"
+
+#include <map>
+
+namespace comm {
+
+enum MessageType {
+ TEXT,
+ CREATE_THREAD,
+ ADD_MEMBERS,
+ CREATE_SUB_THREAD,
+ CHANGE_SETTINGS,
+ REMOVE_MEMBERS,
+ CHANGE_ROLE,
+ LEAVE_THREAD,
+ JOIN_THREAD,
+ CREATE_ENTRY,
+ EDIT_ENTRY,
+ DELETE_ENTRY,
+ RESTORE_ENTRY,
+ UNSUPPORTED,
+ IMAGES,
+ MULTIMEDIA,
+ UPDATE_RELATIONSHIP,
+ SIDEBAR_SOURCE,
+ CREATE_SIDEBAR,
+};
+
+const std::map<MessageType, std::unique_ptr<MessageSpec>> MESSAGE_SPECS = []() {
+ std::map<MessageType, std::unique_ptr<MessageSpec>> message_specs_initializer;
+ message_specs_initializer.insert(
+ {MessageType::TEXT,
+ std::make_unique<TextMessageSpec>(TextMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CREATE_THREAD,
+ std::make_unique<CreateThreadMessageSpec>(CreateThreadMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CREATE_SUB_THREAD,
+ std::make_unique<CreateSubThreadMessageSpec>(
+ CreateSubThreadMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CHANGE_SETTINGS,
+ std::make_unique<ChangeSettingsMessageSpec>(
+ ChangeSettingsMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CHANGE_ROLE,
+ std::make_unique<ChangeRoleMessageSpec>(ChangeRoleMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CREATE_ENTRY,
+ std::make_unique<CreateEntryMessageSpec>(CreateEntryMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::EDIT_ENTRY,
+ std::make_unique<EditEntryMessageSpec>(EditEntryMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::DELETE_ENTRY,
+ std::make_unique<DeleteEntryMessageSpec>(DeleteEntryMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::RESTORE_ENTRY,
+ std::make_unique<RestoreEntryMessageSpec>(RestoreEntryMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::UNSUPPORTED,
+ std::make_unique<UnsupportedMessageSpec>(UnsupportedMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::IMAGES,
+ std::make_unique<MultimediaMessageSpec>(MultimediaMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::MULTIMEDIA,
+ std::make_unique<MultimediaMessageSpec>(MultimediaMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::UPDATE_RELATIONSHIP,
+ std::make_unique<UpdateRelationshipMessageSpec>(
+ UpdateRelationshipMessageSpec())});
+ message_specs_initializer.insert(
+ {MessageType::CREATE_SIDEBAR,
+ std::make_unique<CreateSidebarMessageSpec>(CreateSidebarMessageSpec())});
+ return message_specs_initializer;
+}();
+
+} // namespace comm
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeRoleMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeRoleMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeRoleMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class ChangeRoleMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic changeRoleData =
+ folly::dynamic::object("userIDs", rawMessageInfo["userIDs"])(
+ "newRole", rawMessageInfo["newRole"]);
+ return std::make_unique<std::string>(folly::toJson(changeRoleData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeSettingsMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeSettingsMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/ChangeSettingsMessageSpec.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class ChangeSettingsMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic changeSettingsData = folly::dynamic::object(
+ rawMessageInfo["field"].asString(), rawMessageInfo["value"]);
+ return std::make_unique<std::string>(folly::toJson(changeSettingsData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateEntryMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateEntryMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateEntryMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class CreateEntryMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic entryData =
+ folly::dynamic::object("entryID", rawMessageInfo["entryID"])(
+ "date", rawMessageInfo["date"])("text", rawMessageInfo["text"]);
+ return std::make_unique<std::string>(folly::toJson(entryData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSidebarMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSidebarMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSidebarMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class CreateSidebarMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic createSidebarData = rawMessageInfo["initialThreadState"];
+ createSidebarData["sourceMessageAuthorID"] =
+ rawMessageInfo["sourceMessageAuthorID"];
+ return std::make_unique<std::string>(folly::toJson(createSidebarData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSubThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSubThreadMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateSubThreadMessageSpec.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class CreateSubThreadMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ return std::make_unique<std::string>(
+ rawMessageInfo["childThreadID"].asString());
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateThreadMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/CreateThreadMessageSpec.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class CreateThreadMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic initialThreadState = rawMessageInfo["initialThreadState"];
+ return std::make_unique<std::string>(folly::toJson(initialThreadState));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/DeleteEntryMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/DeleteEntryMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/DeleteEntryMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class DeleteEntryMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic entryData =
+ folly::dynamic::object("entryID", rawMessageInfo["entryID"])(
+ "date", rawMessageInfo["date"])("text", rawMessageInfo["text"]);
+ return std::make_unique<std::string>(folly::toJson(entryData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/EditEntryMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/EditEntryMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/EditEntryMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class EditEntryMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic entryData =
+ folly::dynamic::object("entryID", rawMessageInfo["entryID"])(
+ "date", rawMessageInfo["date"])("text", rawMessageInfo["text"]);
+ return std::make_unique<std::string>(folly::toJson(entryData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <folly/String.h>
+#include <folly/dynamic.h>
+#include <folly/json.h>
+#include <string>
+#include <vector>
+
+namespace comm {
+class MessageSpec {
+public:
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) = 0;
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MultimediaMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MultimediaMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/MultimediaMessageSpec.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class MultimediaMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic mediaIDs = folly::dynamic::array();
+ for (const auto &mediaInfo : rawMessageInfo["media"]) {
+ mediaIDs.push_back(std::stoi(mediaInfo["id"].asString()));
+ }
+ return std::make_unique<std::string>(folly::toJson(mediaIDs));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/RestoreEntryMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/RestoreEntryMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/RestoreEntryMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class RestoreEntryMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic entryData =
+ folly::dynamic::object("entryID", rawMessageInfo["entryID"])(
+ "date", rawMessageInfo["date"])("text", rawMessageInfo["text"]);
+ return std::make_unique<std::string>(folly::toJson(entryData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/TextMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/TextMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/TextMessageSpec.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class TextMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ return std::make_unique<std::string>(rawMessageInfo["text"].asString());
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UnsupportedMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UnsupportedMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UnsupportedMessageSpec.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class UnsupportedMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic unsupportedMessageData =
+ folly::dynamic::object("robotext", rawMessageInfo["robotext"])(
+ "dontPrefixCreator", rawMessageInfo["dontPrefixCreator"])(
+ "unsupportedMessageInfo", rawMessageInfo["unsupportedMessageInfo"]);
+ return std::make_unique<std::string>(folly::toJson(unsupportedMessageData));
+ }
+};
+} // namespace comm
\ No newline at end of file
diff --git a/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UpdateRelationshipMessageSpec.h b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UpdateRelationshipMessageSpec.h
new file mode 100644
--- /dev/null
+++ b/native/cpp/CommonCpp/NativeModules/MessageOperationsUtilities/MessageSpecs/UpdateRelationshipMessageSpec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "MessageSpec.h"
+
+namespace comm {
+class UpdateRelationshipMessageSpec : public MessageSpec {
+ virtual std::unique_ptr<std::string>
+ messageContentForClientDB(const folly::dynamic &rawMessageInfo) override {
+ folly::dynamic updateRelationshipData =
+ folly::dynamic::object("operation", rawMessageInfo["operation"])(
+ "targetID", rawMessageInfo["targetID"]);
+ return std::make_unique<std::string>(folly::toJson(updateRelationshipData));
+ }
+};
+} // namespace comm
\ No newline at end of file

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 9, 11:38 PM (13 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5858785
Default Alt Text
D3940.1765323498.diff (15 KB)

Event Timeline