diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h --- a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h +++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs.h @@ -1,5 +1,6 @@ #pragma once +#include "MessageSpecs/AddMembersMessageSpec.h" #include "MessageSpecs/ChangeRoleMessageSpec.h" #include "MessageSpecs/ChangeSettingsMessageSpec.h" #include "MessageSpecs/CreateEntryMessageSpec.h" @@ -9,9 +10,12 @@ #include "MessageSpecs/DeleteEntryMessageSpec.h" #include "MessageSpecs/EditEntryMessageSpec.h" #include "MessageSpecs/EditMessageSpec.h" +#include "MessageSpecs/JoinThreadMessageSpec.h" +#include "MessageSpecs/LeaveThreadMessageSpec.h" #include "MessageSpecs/MessageSpec.h" #include "MessageSpecs/MultimediaMessageSpec.h" #include "MessageSpecs/ReactionMessageSpec.h" +#include "MessageSpecs/RemoveMembersMessageSpec.h" #include "MessageSpecs/RestoreEntryMessageSpec.h" #include "MessageSpecs/SidebarSourceMessageSpec.h" #include "MessageSpecs/TextMessageSpec.h" @@ -75,6 +79,21 @@ message_specs_initializer.insert( {MessageType::UPDATE_RELATIONSHIP, std::make_unique<UpdateRelationshipMessageSpec>()}); + message_specs_initializer.insert( + {MessageType::UPDATE_RELATIONSHIP, + std::make_unique<UpdateRelationshipMessageSpec>()}); + message_specs_initializer.insert( + {MessageType::JOIN_THREAD, + std::make_unique<JoinThreadMessageSpec>()}); + message_specs_initializer.insert( + {MessageType::LEAVE_THREAD, + std::make_unique<LeaveThreadMessageSpec>()}); + message_specs_initializer.insert( + {MessageType::ADD_MEMBERS, + std::make_unique<AddMembersMessageSpec>()}); + message_specs_initializer.insert( + {MessageType::REMOVE_MEMBERS, + std::make_unique<RemoveMembersMessageSpec>()}); return message_specs_initializer; }(); diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/AddMembersMessageSpec.h @@ -0,0 +1,13 @@ +#pragma once + +#include "MessageSpec.h" + +namespace comm { +class AddMembersMessageSpec : public MessageSpec { + virtual std::unique_ptr<std::string> + messageContentForClientDB(const folly::dynamic &rawMessageInfo) override { + return std::make_unique<std::string>( + folly::toJson(rawMessageInfo["addedUserIDs"])); + } +}; +} // namespace comm diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/JoinThreadMessageSpec.h @@ -0,0 +1,12 @@ +#pragma once + +#include "MessageSpec.h" + +namespace comm { +class JoinThreadMessageSpec : public MessageSpec { + virtual std::unique_ptr<std::string> + messageContentForClientDB(const folly::dynamic &rawMessageInfo) override { + return nullptr; + } +}; +} // namespace comm diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/LeaveThreadMessageSpec.h @@ -0,0 +1,12 @@ +#pragma once + +#include "MessageSpec.h" + +namespace comm { +class LeaveThreadMessageSpec : public MessageSpec { + virtual std::unique_ptr<std::string> + messageContentForClientDB(const folly::dynamic &rawMessageInfo) override { + return nullptr; + } +}; +} // namespace comm diff --git a/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs/RemoveMembersMessageSpec.h @@ -0,0 +1,13 @@ +#pragma once + +#include "MessageSpec.h" + +namespace comm { +class RemoveMembersMessageSpec : public MessageSpec { + virtual std::unique_ptr<std::string> + messageContentForClientDB(const folly::dynamic &rawMessageInfo) override { + return std::make_unique<std::string>( + folly::toJson(rawMessageInfo["removedUserIDs"])); + } +}; +} // namespace comm