#include "AdminTopicPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" #include "../controller/HederaAccount.h" #include "../controller/HederaTopic.h" #include "../controller/Group.h" #include "../SingletonManager/SessionManager.h" #include "../ServerConfig.h" #include "../lib/DataTypeConverter.h" #include "../lib/Profiler.h" #include "../lib/Success.h" #include "Poco/Timespan.h" #include "Poco/URI.h" #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" #include "../ServerConfig.h" AdminTopicPage::AdminTopicPage(Session* arg): SessionHTTPRequestHandler(arg) { } void AdminTopicPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); #line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" const char* pageName = "Topic"; auto user = mSession->getNewUser(); auto sm = SessionManager::getInstance(); Profiler hedera_time; std::string name = ""; int auto_renew_account = 0; int auto_renew_period = 604800; // 7 Tage int group_id = 0; Poco::URI uri(request.getURI()); auto uri_query = uri.getQueryParameters(); std::string action = ""; Poco::AutoPtr query_hedera_topic; // parsing get query params if(uri_query.size() >= 2) { if(uri_query[0].first == "action") { action = uri_query[0].second; } if(uri_query[1].first == "topic_id") { std::string topic_id_from_query; int topic_id = 0; topic_id_from_query = uri_query[1].second; if(DataTypeConverter::strToInt(topic_id_from_query, topic_id) != DataTypeConverter::NUMBER_PARSE_OKAY) { addError(new Error("Int Convert Error", "Error converting topic_id_from_query to int")); } else { auto hedera_topic = controller::HederaTopic::load(topic_id); if(hedera_topic.isNull()) { addError(new Error("Action", "hedera topic not found")); } else { query_hedera_topic = hedera_topic; } } } } // actions if(!query_hedera_topic.isNull()) { if(action == "getTopicInfos") { hedera_time.reset(); if(query_hedera_topic->updateWithGetTopicInfos(user)) { addNotification(new ParamSuccess("Hedera", "hedera get topic infos success in ", hedera_time.string())); } else { addError(new ParamError("Hedera", "hedera get topic infos failed in ", hedera_time.string())); } getErrors(query_hedera_topic); } } else if(!form.empty()) { name = form.get("topic-name", ""); auto auto_renew_account_string = form.get("topic-auto-renew-account", "0"); auto auto_renew_period_string = form.get("topic-auto-renew-period", "604800"); auto group_id_string = form.get("topic-group", "-1"); if(name != "" && !sm->isValid(name, VALIDATE_NAME)) { addError(new Error("Topic", "Name not valid, at least 3 Character")); } if(!sm->isValid(auto_renew_account_string, VALIDATE_ONLY_INTEGER)) { addError(new Error("Topic", "auto renew account id not an integer")); } else { if(DataTypeConverter::strToInt(auto_renew_account_string, auto_renew_account) != DataTypeConverter::NUMBER_PARSE_OKAY) { addError(new Error("Int convert error", "Error converting auto renew account id to int")); } } if(!sm->isValid(auto_renew_period_string, VALIDATE_ONLY_INTEGER)) { addError(new Error("Topic", "auto renew period not an integer")); } else { if(DataTypeConverter::strToInt(auto_renew_period_string, auto_renew_period) != DataTypeConverter::NUMBER_PARSE_OKAY) { addError(new Error("Int convert error", "Error converting auto renew period to int")); } } if(!sm->isValid(group_id_string, VALIDATE_ONLY_INTEGER)) { addError(new Error("Topic", "group_id not an integer")); } else { if(DataTypeConverter::strToInt(group_id_string, group_id) != DataTypeConverter::NUMBER_PARSE_OKAY) { addError(new Error("Int convert error", "Error converting group_id to int")); } } } auto hedera_accounts = controller::HederaAccount::load("user_id", user->getModel()->getID()); //std::vector> hedera_accounts; auto groups = controller::Group::listAll(); std::map group_indices; int count = 0; for(auto it = groups.begin(); it != groups.end(); it++) { group_indices.insert(std::pair((*it)->getModel()->getID(), count)); count++; } auto hedera_topics = controller::HederaTopic::listAll(); //std::vector> hedera_topics; #line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" bool withMaterialIcons = false; std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; // begin include header_large.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; #line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" if(withMaterialIcons) { responseStream << "\n"; responseStream << "\n"; #line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t
"; // end include header_large.cpsp responseStream << "\n"; responseStream << "\n"; #line 133 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Topic Admin Page

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Hedera Topics

\n"; responseStream << "\t\t
\t\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
Topic ID
\t\t\t\n"; responseStream << "\t\t\t\t
Name
\n"; responseStream << "\t\t\t\t
Network Type
\n"; responseStream << "\t\t\t\t
Auto Renew Account Balance
\n"; responseStream << "\t\t\t\t
Auto Renew Period
\n"; responseStream << "\t\t\t\t
Group ID
\n"; responseStream << "\t\t\t\t
Current Timeout
\n"; responseStream << "\t\t\t\t
Sequence Number
\n"; responseStream << "\t\t\t\t
Last Updated
\n"; responseStream << "\t\t\t\t
Aktionen
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t"; #line 155 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) { auto hedera_topic_model = (*it)->getModel(); auto updateUrl = ServerConfig::g_serverPath + "/topic?action=getTopicInfos&topic_id=" + std::to_string(hedera_topic_model->getID()); auto auto_renew_account = (*it)->getAutoRenewAccount(); auto renew_account_model = auto_renew_account->getModel(); std::string timeout_color = "success-color"; if(hedera_topic_model->getCurrentTimeout() < Poco::DateTime()) { timeout_color = "alert-color"; } else if(hedera_topic_model->getCurrentTimeout() - Poco::DateTime() > Poco::Timespan(2,0,0,0,0)) { timeout_color = "orange-color"; } responseStream << "\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\t
"; #line 168 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( (*it)->getTopicHederaId()->getModel()->toString() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 169 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getName() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 170 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( model::table::HederaAccount::hederaNetworkTypeToString(renew_account_model->getNetworkType()) ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 171 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( renew_account_model->getBalanceString() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 172 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getAutoRenewPeriodString() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 173 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getGroupId() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 174 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getCurrentTimeoutString() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 175 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getSequenceNumber() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 176 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" responseStream << ( hedera_topic_model->getUpdatedString() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
\n"; responseStream << "\t\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t
\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t"; #line 183 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp" } responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t

Ein neues Topic anlegen

\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\n"; responseStream << "\t
\n"; responseStream << "
\n"; // begin include footer.cpsp responseStream << "
\n"; responseStream << "

Copyright © Gradido 2020

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; #line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "

Login Server in Entwicklung

\n"; responseStream << "

Alpha "; #line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << ""; if (_compressResponse) _gzipStream.close(); }