diff --git a/login_server/src/cpp/controller/Group.cpp b/login_server/src/cpp/controller/Group.cpp index d033d37f1..cbd023a3d 100644 --- a/login_server/src/cpp/controller/Group.cpp +++ b/login_server/src/cpp/controller/Group.cpp @@ -77,6 +77,23 @@ namespace controller { } return resultVector; } + + JsonRequest Group::createJsonRequest() + { + int port = 0; + port = ServerConfig::g_serverPort; + if (!port) { + if (ServerConfig::SERVER_TYPE_PRODUCTION == ServerConfig::g_ServerSetupType || + ServerConfig::SERVER_TYPE_STAGING == ServerConfig::g_ServerSetupType) { + port = 443; + } + else { + port = 80; + } + } + auto model = getModel(); + return JsonRequest(model->getUrl(), port); + } } diff --git a/login_server/src/cpp/controller/Group.h b/login_server/src/cpp/controller/Group.h index a9b3ca55d..55b58906c 100644 --- a/login_server/src/cpp/controller/Group.h +++ b/login_server/src/cpp/controller/Group.h @@ -3,6 +3,8 @@ #include "../model/table/Group.h" +#include "../lib/JsonRequest.h" + #include "Poco/SharedPtr.h" #include "TableControllerBase.h" @@ -23,7 +25,7 @@ namespace controller { inline bool deleteFromDB() { return mDBModel->deleteFromDB(); } inline Poco::AutoPtr getModel() { return _getModel(); } - + JsonRequest createJsonRequest(); protected: Group(model::table::Group* dbModel); diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 271ddf0bf..5ea3594fc 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -591,4 +591,13 @@ namespace controller { return mGroupBaseUrl; } + Poco::AutoPtr User::getGroup() + { + auto model = getModel(); + if (!model->getGroupId()) { + return nullptr; + } + return controller::Group::load(model->getGroupId()); + } + } diff --git a/login_server/src/cpp/controller/User.h b/login_server/src/cpp/controller/User.h index 3cf9225be..94d52591f 100644 --- a/login_server/src/cpp/controller/User.h +++ b/login_server/src/cpp/controller/User.h @@ -8,6 +8,7 @@ #include #include "TableControllerBase.h" +#include "Group.h" enum UserState { @@ -147,6 +148,7 @@ namespace controller { inline int getBalance() { std::shared_lock _lock(mSharedMutex); return mGradidoCurrentBalance; } std::string getGroupBaseUrl(); + Poco::AutoPtr getGroup(); // connection to other tables diff --git a/login_server/src/cpp/lib/DataTypeConverter.h b/login_server/src/cpp/lib/DataTypeConverter.h index 38249f740..3f02b961d 100644 --- a/login_server/src/cpp/lib/DataTypeConverter.h +++ b/login_server/src/cpp/lib/DataTypeConverter.h @@ -40,6 +40,9 @@ namespace DataTypeConverter { std::string binToBase64(const unsigned char* data, size_t size, int variant = sodium_base64_VARIANT_ORIGINAL); inline std::string binToBase64(const MemoryBin* data, int variant = sodium_base64_VARIANT_ORIGINAL) { return binToBase64(data->data(), data->size(), variant); } + inline std::string binToBase64(const std::string& proto_bin, int variant = sodium_base64_VARIANT_ORIGINAL) { + return binToBase64((const unsigned char*)proto_bin.data(), proto_bin.size(), variant); + } std::string binToHex(const unsigned char* data, size_t size); std::string binToHex(const Poco::Nullable& nullableBin); diff --git a/login_server/src/cpp/model/gradido/TransactionBody.cpp b/login_server/src/cpp/model/gradido/TransactionBody.cpp index 5430ca53d..3a0cd38a6 100644 --- a/login_server/src/cpp/model/gradido/TransactionBody.cpp +++ b/login_server/src/cpp/model/gradido/TransactionBody.cpp @@ -319,5 +319,15 @@ namespace model { } return BLOCKCHAIN_UNKNOWN; } + + const char* TransactionBody::getBlockchainTypeString() const + { + switch (mBlockchainType) { + case BLOCKCHAIN_HEDERA: return "hedera"; + case BLOCKCHAIN_MYSQL: return "mysql"; + case BLOCKCHAIN_UNKNOWN: return "unknown"; + } + return "invalid"; + } } } \ No newline at end of file diff --git a/login_server/src/cpp/model/gradido/TransactionBody.h b/login_server/src/cpp/model/gradido/TransactionBody.h index 4451fc29b..198d0ca4b 100644 --- a/login_server/src/cpp/model/gradido/TransactionBody.h +++ b/login_server/src/cpp/model/gradido/TransactionBody.h @@ -82,6 +82,9 @@ namespace model { static BlockchainType blockchainTypeFromString(const std::string& blockainTypeString); inline void setBlockchainType(BlockchainType blockchainType) { mBlockchainType = blockchainType;} + inline bool isHederaBlockchain() { return mBlockchainType == BLOCKCHAIN_HEDERA; } + inline bool isMysqlBlockchain() { return mBlockchainType == BLOCKCHAIN_MYSQL; } + const char* getBlockchainTypeString() const; protected: TransactionBody();