finalize new transaction creation strategy, TODO: test and fix errors

This commit is contained in:
Dario 2020-10-28 12:54:54 +01:00 committed by Ulf Gebhardt
parent 06b425a658
commit 31add877cf
No known key found for this signature in database
GPG Key ID: 81308EFE29ABFEBD
8 changed files with 17 additions and 15 deletions

View File

@ -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;

View File

@ -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();
}

View File

@ -42,7 +42,7 @@ namespace model {
Poco::ScopedLock<Poco::Mutex> _lock(mWorkMutex);
}
Poco::AutoPtr<Transaction> Transaction::create(Poco::AutoPtr<controller::User> user, Poco::AutoPtr<controller::Group> group)
Poco::AutoPtr<Transaction> Transaction::createGroupMemberUpdate(Poco::AutoPtr<controller::User> user, Poco::AutoPtr<controller::Group> 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> Transaction::create(Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo)
Poco::AutoPtr<Transaction> Transaction::createCreation(Poco::AutoPtr<controller::User> 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<Poco::AutoPtr<Transaction>> Transaction::create(Poco::AutoPtr<controller::User> sender, MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo)
std::vector<Poco::AutoPtr<Transaction>> Transaction::createTransfer(Poco::AutoPtr<controller::User> sender, MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo)
{
std::vector<Poco::AutoPtr<Transaction>> 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<Poco::AutoPtr<TransactionBody>> 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> transaction = new Transaction(body);

View File

@ -27,12 +27,12 @@ namespace model {
// create group add member transaction
// groupMemberUpdate
static Poco::AutoPtr<Transaction> create(Poco::AutoPtr<controller::User> user, Poco::AutoPtr<controller::Group> group);
static Poco::AutoPtr<Transaction> createGroupMemberUpdate(Poco::AutoPtr<controller::User> user, Poco::AutoPtr<controller::Group> group);
//! \brief transfer
//! \return for cross group transaction return two transactions
static std::vector<Poco::AutoPtr<Transaction>> create(Poco::AutoPtr<controller::User> sender, MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo);
static Poco::AutoPtr<Transaction> create(Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo);
static std::vector<Poco::AutoPtr<Transaction>> createTransfer(Poco::AutoPtr<controller::User> sender, MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo);
//! \brief creation transaction
static Poco::AutoPtr<Transaction> createCreation(Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo);
static Poco::AutoPtr<Transaction> load(model::table::PendingTask* dbModel);
bool sign(Poco::AutoPtr<controller::User> user);

View File

@ -84,7 +84,7 @@ namespace model {
return obj;
}
Poco::AutoPtr<TransactionBody> TransactionBody::load(const std::string& memo, Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate)
Poco::AutoPtr<TransactionBody> TransactionBody::create(const std::string& memo, Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate)
{
if (receiver.isNull() || !receiver->getModel()) {
return nullptr;

View File

@ -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;