diff --git a/src/cpp/HTTPInterface/UserUpdateGroupPage.cpp b/src/cpp/HTTPInterface/UserUpdateGroupPage.cpp index 4089fd119..5434356cb 100644 --- a/src/cpp/HTTPInterface/UserUpdateGroupPage.cpp +++ b/src/cpp/HTTPInterface/UserUpdateGroupPage.cpp @@ -68,7 +68,7 @@ void UserUpdateGroupPage::handleRequest(Poco::Net::HTTPServerRequest& request, P addError(new Error(gettext("Fehler"), gettext("Interner Fehler"))); } else { auto addGroupMemberTransaction = - model::gradido::Transaction::create(user, choosen_group); + model::gradido::Transaction::createGroupMemberUpdate(user, choosen_group); response.redirect(ServerConfig::g_serverPath + "/checkTransactions"); return; state = PAGE_STATE_REQUEST_IS_RUNNING; diff --git a/src/cpp/JSONInterface/JsonCreateTransaction.cpp b/src/cpp/JSONInterface/JsonCreateTransaction.cpp index 85b96fb26..229e2540a 100644 --- a/src/cpp/JSONInterface/JsonCreateTransaction.cpp +++ b/src/cpp/JSONInterface/JsonCreateTransaction.cpp @@ -78,7 +78,8 @@ Poco::JSON::Object* JsonCreateTransaction::transfer(Poco::Dynamic::Var params) return stateError("parameter format unknown"); } - + model::gradido::Transaction::createTransfer(mSession->getNewUser(), target_pubkey, mTargetGroup, amount, mMemo); + return stateSuccess(); } Poco::JSON::Object* JsonCreateTransaction::creation(Poco::Dynamic::Var params) { @@ -98,6 +99,8 @@ Poco::JSON::Object* JsonCreateTransaction::creation(Poco::Dynamic::Var params) else { return stateError("parameter format unknown"); } + model::gradido::Transaction::createCreation(mSession->getNewUser(), amount, target_date, mMemo); + return stateSuccess(); } Poco::JSON::Object* JsonCreateTransaction::groupMemberUpdate(Poco::Dynamic::Var params) @@ -105,7 +108,7 @@ Poco::JSON::Object* JsonCreateTransaction::groupMemberUpdate(Poco::Dynamic::Var if (mTargetGroup.isNull()) { return stateError("target_group not found"); } - model::gradido::Transaction::create(mSession->getNewUser(), mTargetGroup); + model::gradido::Transaction::createGroupMemberUpdate(mSession->getNewUser(), mTargetGroup); return stateSuccess(); } diff --git a/src/cpp/JSONInterface/JsonNetworkInfos.cpp b/src/cpp/JSONInterface/JsonNetworkInfos.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/src/cpp/JSONInterface/JsonNetwortkInfos.h b/src/cpp/JSONInterface/JsonNetwortkInfos.h new file mode 100644 index 000000000..e69de29bb diff --git a/src/cpp/model/gradido/Transaction.cpp b/src/cpp/model/gradido/Transaction.cpp index 1c8d9ba5e..f620c3a48 100644 --- a/src/cpp/model/gradido/Transaction.cpp +++ b/src/cpp/model/gradido/Transaction.cpp @@ -42,7 +42,7 @@ namespace model { Poco::ScopedLock _lock(mWorkMutex); } - Poco::AutoPtr Transaction::create(Poco::AutoPtr user, Poco::AutoPtr group) + Poco::AutoPtr Transaction::createGroupMemberUpdate(Poco::AutoPtr user, Poco::AutoPtr group) { auto em = ErrorManager::getInstance(); static const char* function_name = "Transaction::create group member update"; @@ -71,7 +71,7 @@ namespace model { return result; } - Poco::AutoPtr Transaction::create(Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo) + Poco::AutoPtr Transaction::createCreation(Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo) { auto em = ErrorManager::getInstance(); static const char* function_name = "Transaction::create creation"; @@ -98,22 +98,21 @@ namespace model { return result; } - std::vector> Transaction::create(Poco::AutoPtr sender, MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, const std::string& memo) + std::vector> Transaction::createTransfer(Poco::AutoPtr sender, MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, const std::string& memo) { std::vector> results; auto em = ErrorManager::getInstance(); static const char* function_name = "Transaction::create transfer"; - if (sender.isNull() || !sender->getModel() || receiverGroup.isNull() || !receiverGroup->getModel() || !receiverPubkey || !amount) { + if (sender.isNull() || !sender->getModel() || !receiverPubkey || !amount) { return results; } //std::vector> bodys; auto sender_model = sender->getModel(); - auto group_model = receiverGroup->getModel(); auto network_type = table::HEDERA_TESTNET; // LOCAL Transfer - if (sender_model->getGroupId() == group_model->getID()) + if (receiverGroup.isNull() || sender_model->getGroupId() == receiverGroup->getModel()->getID()) { auto body = TransactionBody::create(memo, sender, receiverPubkey, amount); Poco::AutoPtr transaction = new Transaction(body); diff --git a/src/cpp/model/gradido/Transaction.h b/src/cpp/model/gradido/Transaction.h index 0e2c0f91a..027eada45 100644 --- a/src/cpp/model/gradido/Transaction.h +++ b/src/cpp/model/gradido/Transaction.h @@ -27,12 +27,12 @@ namespace model { // create group add member transaction // groupMemberUpdate - static Poco::AutoPtr create(Poco::AutoPtr user, Poco::AutoPtr group); + static Poco::AutoPtr createGroupMemberUpdate(Poco::AutoPtr user, Poco::AutoPtr group); //! \brief transfer //! \return for cross group transaction return two transactions - static std::vector> create(Poco::AutoPtr sender, MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, const std::string& memo); - - static Poco::AutoPtr create(Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo); + static std::vector> createTransfer(Poco::AutoPtr sender, MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, const std::string& memo); + //! \brief creation transaction + static Poco::AutoPtr createCreation(Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo); static Poco::AutoPtr load(model::table::PendingTask* dbModel); bool sign(Poco::AutoPtr user); diff --git a/src/cpp/model/gradido/TransactionBody.cpp b/src/cpp/model/gradido/TransactionBody.cpp index 294f33d34..95a7527eb 100644 --- a/src/cpp/model/gradido/TransactionBody.cpp +++ b/src/cpp/model/gradido/TransactionBody.cpp @@ -84,7 +84,7 @@ namespace model { return obj; } - Poco::AutoPtr TransactionBody::load(const std::string& memo, Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate) + Poco::AutoPtr TransactionBody::create(const std::string& memo, Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::DateTime targetDate) { if (receiver.isNull() || !receiver->getModel()) { return nullptr; diff --git a/src/cpsp/userUpdateGroup.cpsp b/src/cpsp/userUpdateGroup.cpsp index 3f2942ffa..5bf43375a 100644 --- a/src/cpsp/userUpdateGroup.cpsp +++ b/src/cpsp/userUpdateGroup.cpsp @@ -46,7 +46,7 @@ enum PageState { addError(new Error(gettext("Fehler"), gettext("Interner Fehler"))); } else { auto addGroupMemberTransaction = - model::gradido::Transaction::create(user, choosen_group); + model::gradido::Transaction::createGroupMemberUpdate(user, choosen_group); response.redirect(ServerConfig::g_serverPath + "/checkTransactions"); return; state = PAGE_STATE_REQUEST_IS_RUNNING;