diff --git a/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h b/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h --- a/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h +++ b/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h @@ -109,6 +109,8 @@ removeAuxUserInfos(const std::vector &ids) const = 0; virtual void removeAllAuxUserInfos() const = 0; virtual std::vector getAllAuxUserInfos() const = 0; + virtual std::optional + getSingleAuxUserInfo(const std::string &userID) const = 0; virtual void replaceThreadActivityEntry( const ThreadActivityEntry &threadActivityEntry, bool backupItem) const = 0; diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h --- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h @@ -108,6 +108,8 @@ void removeAuxUserInfos(const std::vector &ids) const override; void removeAllAuxUserInfos() const override; virtual std::vector getAllAuxUserInfos() const override; + std::optional + getSingleAuxUserInfo(const std::string &userID) const override; void replaceThreadActivityEntry( const ThreadActivityEntry &threadActivityEntry, bool backupItem) const override; diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp @@ -938,6 +938,20 @@ this->getConnection(), getAllAuxUserInfosSQL); } +std::optional +SQLiteQueryExecutor::getSingleAuxUserInfo(const std::string &userID) const { + static std::string getAuxUserInfoSQL = + "SELECT * " + "FROM aux_users " + "WHERE id = ?"; + std::unique_ptr result = getEntityByPrimaryKey( + this->getConnection(), getAuxUserInfoSQL, userID); + if (result == nullptr) { + return std::nullopt; + } + return *result; +} + void SQLiteQueryExecutor::replaceThreadActivityEntry( const ThreadActivityEntry &threadActivityEntry, bool backupItem) const { diff --git a/web/cpp/SQLiteQueryExecutorBindings.cpp b/web/cpp/SQLiteQueryExecutorBindings.cpp --- a/web/cpp/SQLiteQueryExecutorBindings.cpp +++ b/web/cpp/SQLiteQueryExecutorBindings.cpp @@ -238,6 +238,8 @@ .function( "removeAllAuxUserInfos", &SQLiteQueryExecutor::removeAllAuxUserInfos) .function("getAllAuxUserInfos", &SQLiteQueryExecutor::getAllAuxUserInfos) + .function( + "getSingleAuxUserInfo", &SQLiteQueryExecutor::getSingleAuxUserInfo) .function( "replaceThreadActivityEntry", &SQLiteQueryExecutor::replaceThreadActivityEntry) diff --git a/web/shared-worker/_generated/comm_query_executor.wasm b/web/shared-worker/_generated/comm_query_executor.wasm index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@): void; removeAllAuxUserInfos(): void; getAllAuxUserInfos(): ClientDBAuxUserInfo[]; + getSingleAuxUserInfo(userID: string): ?ClientDBAuxUserInfo; replaceThreadActivityEntry( threadActivityEntry: ClientDBThreadActivityEntry,