diff --git a/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp b/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp
index e98a02d92..fa99a7b35 100644
--- a/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp
+++ b/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp
@@ -12,6 +12,8 @@
#include "../controller/HederaId.h"
#include "../controller/CryptoKey.h"
#include "../lib/DataTypeConverter.h"
+#include "../lib/Profiler.h"
+#include "../lib/Success.h"
#include "../SingletonManager/SessionManager.h"
#include "../ServerConfig.h"
@@ -37,12 +39,14 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request
if (_compressResponse) response.set("Content-Encoding", "gzip");
Poco::Net::HTMLForm form(request, request.stream());
-#line 20 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
const char* pageName = "Hedera Account";
auto sm = SessionManager::getInstance();
auto mm = MemoryManager::getInstance();
auto user = mSession->getNewUser();
+ Profiler hedera_time;
+ std::string hedera_time_string;
Poco::URI uri(request.getURI());
auto uri_query = uri.getQueryParameters();
@@ -65,7 +69,9 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request
if(!hedera_account.size() || hedera_account[0].isNull()) {
addError(new Error("Action Update Balance", "hedera id not found"));
} else {
+ hedera_time.reset();
hedera_account[0]->updateBalanceFromHedera(user, this);
+ addNotification(new ParamSuccess("Hedera", "crypto get balance success in ", hedera_time.string()));
}
}
}
@@ -225,7 +231,7 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request
responseStream << "\t\t
";
// end include header_large.cpsp
responseStream << "\n";
-#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 156 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "
\n";
responseStream << "\t\t\t";
-#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 171 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
for(auto it = hedera_accounts.begin(); it != hedera_accounts.end(); it++) {
auto hedera_account_model = (*it)->getModel();
auto updateUrl = ServerConfig::g_serverPath + "/hedera_account?action=updateBalance&account_id=" + std::to_string(hedera_account_model->getID());
responseStream << "\n";
responseStream << "\t\t\t\t
\n";
responseStream << "\t\t\t\t\t
";
-#line 169 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 176 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( (*it)->getHederaId()->getModel()->toString() );
responseStream << "
\n";
responseStream << "\t\t\t\t\t
";
-#line 170 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 177 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( hedera_account_model->getBalanceDouble() );
responseStream << " hbar
\n";
responseStream << "\t\t\t\t\t
";
-#line 171 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 178 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( model::table::HederaAccount::hederaNetworkTypeToString(hedera_account_model->getNetworkType()) );
responseStream << "
\n";
responseStream << "\t\t\t\t\t
";
-#line 172 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( hedera_account_model->getUpdatedString() );
responseStream << "
\n";
responseStream << "\t\t\t\t\t
\n";
responseStream << "\t\t\t\t
\n";
responseStream << "\t\t\t";
-#line 177 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
+#line 184 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << "\n";
responseStream << "\t\t
\n";
responseStream << "\t\n";
@@ -281,7 +287,7 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request
responseStream << "\t\n";
responseStream << "\t\n";
responseStream << "\t\t
\n";
diff --git a/src/cpp/HTTPInterface/ElopageWebhook.h b/src/cpp/HTTPInterface/ElopageWebhook.h
index bf8ea4efc..77c60b155 100644
--- a/src/cpp/HTTPInterface/ElopageWebhook.h
+++ b/src/cpp/HTTPInterface/ElopageWebhook.h
@@ -4,7 +4,7 @@
#include "PageRequestMessagedHandler.h"
#include "../tasks/CPUTask.h"
-#include "../lib/ErrorList.h"
+#include "../lib/NotificationList.h"
#include "Poco/Net/NameValueCollection.h"
@@ -14,7 +14,7 @@ public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
-class HandleElopageRequestTask : public UniLib::controller::CPUTask, protected ErrorList
+class HandleElopageRequestTask : public UniLib::controller::CPUTask, protected NotificationList
{
public:
HandleElopageRequestTask(Poco::Net::NameValueCollection& requestData);
diff --git a/src/cpp/HTTPInterface/PageRequestMessagedHandler.h b/src/cpp/HTTPInterface/PageRequestMessagedHandler.h
index 2e47b398d..396fc8a4e 100644
--- a/src/cpp/HTTPInterface/PageRequestMessagedHandler.h
+++ b/src/cpp/HTTPInterface/PageRequestMessagedHandler.h
@@ -2,7 +2,7 @@
#define PAGE_REQUEST_MESSAGE_HANDLER_INCLUDED
#include "../model/Session.h"
-#include "../lib/ErrorList.h"
+#include "../lib/NotificationList.h"
#include "../lib/Profiler.h"
#include "../SingletonManager/LanguageManager.h"
@@ -11,7 +11,7 @@
#include "Poco/Net/HTMLForm.h"
#include "Poco/RegularExpression.h"
-class PageRequestMessagedHandler : public Poco::Net::HTTPRequestHandler, public ErrorList
+class PageRequestMessagedHandler : public Poco::Net::HTTPRequestHandler, public NotificationList
{
public:
PageRequestMessagedHandler() {}
diff --git a/src/cpp/JSONInterface/JsonRequestHandler.cpp b/src/cpp/JSONInterface/JsonRequestHandler.cpp
index b66cba495..1601c764c 100644
--- a/src/cpp/JSONInterface/JsonRequestHandler.cpp
+++ b/src/cpp/JSONInterface/JsonRequestHandler.cpp
@@ -1,141 +1,138 @@
-#include "JsonRequestHandler.h"
-
-#include "Poco/Net/HTTPServerRequest.h"
-#include "Poco/Net/HTTPServerResponse.h"
-
-#include "Poco/URI.h"
-#include "Poco/DeflatingStream.h"
-
-#include "Poco/JSON/Parser.h"
-
-#include "../ServerConfig.h"
-
-#include "../lib/DataTypeConverter.h"
-#include "../SingletonManager/SessionManager.h"
-
-
-void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
-{
-
- response.setChunkedTransferEncoding(false);
- response.setContentType("application/json");
- if (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_CORS_ALL) {
- response.set("Access-Control-Allow-Origin", "*");
- response.set("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
- }
- //bool _compressResponse(request.hasToken("Accept-Encoding", "gzip"));
- //if (_compressResponse) response.set("Content-Encoding", "gzip");
-
- std::ostream& responseStream = response.send();
- //Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
- //std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
-
- auto method = request.getMethod();
- std::istream& request_stream = request.stream();
- Poco::JSON::Object* json_result = nullptr;
- if (method == "POST" || method == "PUT") {
- // extract parameter from request
- Poco::Dynamic::Var parsedResult = parseJsonWithErrorPrintFile(request_stream);
-
- if (parsedResult.size() != 0) {
- json_result = handle(parsedResult);
- }
- else {
- json_result = stateError("empty body");
- }
-
- }
- else if(method == "GET") {
- Poco::URI uri(request.getURI());
- auto queryParameters = uri.getQueryParameters();
- json_result = handle(queryParameters);
- }
-
- if (json_result) {
- if (!json_result->isNull("session_id")) {
- int session_id = 0;
- try {
- json_result->get("session_id").convert(session_id);
- }
- catch (Poco::Exception& e) {
- ErrorList erros;
- erros.addError(new Error("json request", "invalid session_id"));
- erros.sendErrorsAsEmail();
- }
- if (session_id) {
- auto session = SessionManager::getInstance()->getSession(session_id);
- response.addCookie(session->getLoginCookie());
- }
- }
- json_result->stringify(responseStream);
- delete json_result;
- }
-
- //if (_compressResponse) _gzipStream.close();
-}
-
-
-Poco::Dynamic::Var JsonRequestHandler::parseJsonWithErrorPrintFile(std::istream& request_stream, ErrorList* errorHandler /* = nullptr*/, const char* functionName /* = nullptr*/)
-{
- // debugging answer
-
- std::stringstream responseStringStream;
- for (std::string line; std::getline(request_stream, line); ) {
- responseStringStream << line << std::endl;
- }
-
- // extract parameter from request
- Poco::JSON::Parser jsonParser;
- Poco::Dynamic::Var parsedJson;
- try {
- parsedJson = jsonParser.parse(responseStringStream.str());
-
- return parsedJson;
- }
- catch (Poco::Exception& ex) {
- if (errorHandler) {
- errorHandler->addError(new ParamError(functionName, "error parsing request answer", ex.displayText().data()));
- errorHandler->sendErrorsAsEmail(responseStringStream.str());
- }
- std::string dateTimeString = Poco::DateTimeFormatter::format(Poco::DateTime(), "%d_%m_%yT%H_%M_%S");
- std::string filename = dateTimeString + "_response.html";
- FILE* f = fopen(filename.data(), "wt");
- if (f) {
- std::string responseString = responseStringStream.str();
- fwrite(responseString.data(), 1, responseString.size(), f);
- fclose(f);
- }
- return Poco::Dynamic::Var();
- }
- return Poco::Dynamic::Var();
-}
-
-Poco::JSON::Object* JsonRequestHandler::stateError(const char* msg, std::string details)
-{
- Poco::JSON::Object* result = new Poco::JSON::Object;
- result->set("state", "error");
- result->set("msg", msg);
- if (details != "") {
- result->set("details", details);
- }
- return result;
-}
-
-Poco::JSON::Object* JsonRequestHandler::stateSuccess()
-{
- Poco::JSON::Object* result = new Poco::JSON::Object;
- result->set("state", "success");
- return result;
-}
-
-Poco::JSON::Object* JsonRequestHandler::customStateError(const char* state, const char* msg, std::string details/* = ""*/)
-{
- Poco::JSON::Object* result = new Poco::JSON::Object;
- result->set("state", state);
- result->set("msg", msg);
- if (details != "") {
- result->set("details", details);
- }
- return result;
-}
-
+#include "JsonRequestHandler.h"
+
+#include "Poco/Net/HTTPServerRequest.h"
+#include "Poco/Net/HTTPServerResponse.h"
+
+#include "Poco/URI.h"
+#include "Poco/DeflatingStream.h"
+
+#include "Poco/JSON/Parser.h"
+
+#include "../ServerConfig.h"
+
+#include "../lib/DataTypeConverter.h"
+#include "../SingletonManager/SessionManager.h"
+
+void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
+{
+
+ response.setChunkedTransferEncoding(false);
+ response.setContentType("application/json");
+ if (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_CORS_ALL) {
+ response.set("Access-Control-Allow-Origin", "*");
+ response.set("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
+ }
+ //bool _compressResponse(request.hasToken("Accept-Encoding", "gzip"));
+ //if (_compressResponse) response.set("Content-Encoding", "gzip");
+
+ std::ostream& responseStream = response.send();
+ //Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
+ //std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
+
+ auto method = request.getMethod();
+ std::istream& request_stream = request.stream();
+ Poco::JSON::Object* json_result = nullptr;
+ if (method == "POST" || method == "PUT") {
+ // extract parameter from request
+ Poco::Dynamic::Var parsedResult = parseJsonWithErrorPrintFile(request_stream);
+
+ if (parsedResult.size() != 0) {
+ json_result = handle(parsedResult);
+ }
+ else {
+ json_result = stateError("empty body");
+ }
+ }
+ else if(method == "GET") {
+ Poco::URI uri(request.getURI());
+ auto queryParameters = uri.getQueryParameters();
+ json_result = handle(queryParameters);
+ }
+
+ if (json_result) {
+ if (!json_result->isNull("session_id")) {
+ int session_id = 0;
+ try {
+ json_result->get("session_id").convert(session_id);
+ }
+ catch (Poco::Exception& e) {
+ ErrorList erros;
+ erros.addError(new Error("json request", "invalid session_id"));
+ erros.sendErrorsAsEmail();
+ }
+ if (session_id) {
+ auto session = SessionManager::getInstance()->getSession("session_id");
+ response.addCookie(session->getLoginCookie());
+ }
+ }
+ json_result->stringify(responseStream);
+ delete json_result;
+ }
+
+ //if (_compressResponse) _gzipStream.close();
+}
+
+
+Poco::Dynamic::Var JsonRequestHandler::parseJsonWithErrorPrintFile(std::istream& request_stream, NotificationList* errorHandler /* = nullptr*/, const char* functionName /* = nullptr*/)
+{
+ // debugging answer
+
+ std::stringstream responseStringStream;
+ for (std::string line; std::getline(request_stream, line); ) {
+ responseStringStream << line << std::endl;
+ }
+
+ // extract parameter from request
+ Poco::JSON::Parser jsonParser;
+ Poco::Dynamic::Var parsedJson;
+ try {
+ parsedJson = jsonParser.parse(responseStringStream.str());
+
+ return parsedJson;
+ }
+ catch (Poco::Exception& ex) {
+ if (errorHandler) {
+ errorHandler->addError(new ParamError(functionName, "error parsing request answer", ex.displayText().data()));
+ errorHandler->sendErrorsAsEmail(responseStringStream.str());
+ }
+ std::string dateTimeString = Poco::DateTimeFormatter::format(Poco::DateTime(), "%d_%m_%yT%H_%M_%S");
+ std::string filename = dateTimeString + "_response.html";
+ FILE* f = fopen(filename.data(), "wt");
+ if (f) {
+ std::string responseString = responseStringStream.str();
+ fwrite(responseString.data(), 1, responseString.size(), f);
+ fclose(f);
+ }
+ return Poco::Dynamic::Var();
+ }
+ return Poco::Dynamic::Var();
+}
+
+Poco::JSON::Object* JsonRequestHandler::stateError(const char* msg, std::string details)
+{
+ Poco::JSON::Object* result = new Poco::JSON::Object;
+ result->set("state", "error");
+ result->set("msg", msg);
+ if (details != "") {
+ result->set("details", details);
+ }
+ return result;
+}
+
+Poco::JSON::Object* JsonRequestHandler::stateSuccess()
+{
+ Poco::JSON::Object* result = new Poco::JSON::Object;
+ result->set("state", "success");
+ return result;
+}
+
+Poco::JSON::Object* JsonRequestHandler::customStateError(const char* state, const char* msg, std::string details/* = ""*/)
+{
+ Poco::JSON::Object* result = new Poco::JSON::Object;
+ result->set("state", state);
+ result->set("msg", msg);
+ if (details != "") {
+ result->set("details", details);
+ }
+ return result;
+}
diff --git a/src/cpp/JSONInterface/JsonRequestHandler.h b/src/cpp/JSONInterface/JsonRequestHandler.h
index 72230bfe4..90c3e3171 100644
--- a/src/cpp/JSONInterface/JsonRequestHandler.h
+++ b/src/cpp/JSONInterface/JsonRequestHandler.h
@@ -4,7 +4,7 @@
#include "Poco/Net/HTTPRequestHandler.h"
#include "Poco/JSON/Object.h"
-#include "../lib/ErrorList.h"
+#include "../lib/NotificationList.h"
class JsonRequestHandler : public Poco::Net::HTTPRequestHandler
@@ -15,7 +15,7 @@ public:
virtual Poco::JSON::Object* handle(Poco::Dynamic::Var params) = 0;
- static Poco::Dynamic::Var parseJsonWithErrorPrintFile(std::istream& request_stream, ErrorList* errorHandler = nullptr, const char* functionName = nullptr);
+ static Poco::Dynamic::Var parseJsonWithErrorPrintFile(std::istream& request_stream, NotificationList* errorHandler = nullptr, const char* functionName = nullptr);
protected:
Poco::JSON::Object* mResultJson;
diff --git a/src/cpp/SingletonManager/ConnectionManager.h b/src/cpp/SingletonManager/ConnectionManager.h
index 72c8b02e4..2c0d4968a 100644
--- a/src/cpp/SingletonManager/ConnectionManager.h
+++ b/src/cpp/SingletonManager/ConnectionManager.h
@@ -9,7 +9,7 @@
#include "../MySQL/Poco/Connector.h"
#include "Poco/Exception.h"
-#include "../lib/ErrorList.h"
+#include "../lib/NotificationList.h"
enum ConnectionType {
CONNECTION_MYSQL_LOGIN_SERVER,
@@ -17,7 +17,7 @@ enum ConnectionType {
CONNECTION_MAX
};
-class ConnectionManager : public ErrorList
+class ConnectionManager : public NotificationList
{
public:
~ConnectionManager();
diff --git a/src/cpp/SingletonManager/ErrorManager.cpp b/src/cpp/SingletonManager/ErrorManager.cpp
index 090a6f9dd..b4df67974 100644
--- a/src/cpp/SingletonManager/ErrorManager.cpp
+++ b/src/cpp/SingletonManager/ErrorManager.cpp
@@ -4,7 +4,7 @@
#include "Poco/Net/SecureSMTPClientSession.h"
#include "Poco/Net/StringPartSource.h"
-#include "../lib/ErrorList.h"
+#include "../lib/NotificationList.h"
#include "../model/email/Email.h"
@@ -34,19 +34,19 @@ ErrorManager::~ErrorManager()
mErrorsMap.clear();
}
-void ErrorManager::addError(Error* error, bool log/* = true*/)
+void ErrorManager::addError(Notification* error, bool log/* = true*/)
{
DHASH id = DRMakeStringHash(error->getFunctionName());
mWorkingMutex.lock();
auto it = mErrorsMap.find(id);
- std::list
* list = nullptr;
+ std::list* list = nullptr;
//printf("[ErrorManager::addError] error with function: %s, %s\n", error->getFunctionName(), error->getMessage());
if(log) mLogging.error("[ErrorManager::addError] %s", error->getString(false));
if (it == mErrorsMap.end()) {
- list = new std::list;
- mErrorsMap.insert(std::pair*>(id, list));
+ list = new std::list;
+ mErrorsMap.insert(std::pair*>(id, list));
}
else {
list = it->second;
@@ -62,9 +62,9 @@ void ErrorManager::addError(Error* error, bool log/* = true*/)
}
-int ErrorManager::getErrors(ErrorList* send)
+int ErrorManager::getErrors(NotificationList* send)
{
- Error* error = nullptr;
+ Notification* error = nullptr;
int iCount = 0;
while (error = send->getLastError()) {
addError(error, false);
diff --git a/src/cpp/SingletonManager/ErrorManager.h b/src/cpp/SingletonManager/ErrorManager.h
index e59bd7d35..a0e427d9e 100644
--- a/src/cpp/SingletonManager/ErrorManager.h
+++ b/src/cpp/SingletonManager/ErrorManager.h
@@ -15,7 +15,7 @@
#include
#include