#include "../../../include/http/pages/peerdetailspage.h" #include "../../../include/stringfunctions.h" #ifdef XMEM #include #endif const std::string PeerDetailsPage::GeneratePage(const std::string &method, const std::map &queryvars) { std::string content=""; int identityid=0; std::string name; std::string publickey; std::string messagetrust; std::string trustlisttrust; std::string keypart=""; std::string lastseen=""; if(queryvars.find("identityid")!=queryvars.end() && (*queryvars.find("identityid")).second!="") { StringFunctions::Convert((*queryvars.find("identityid")).second,identityid); } SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,LastSeen FROM tblIdentity WHERE IdentityID=?;"); st.Bind(0,identityid); st.Step(); if(st.RowReturned()) { st.ResultText(0,name); st.ResultText(1,publickey); st.ResultText(2,lastseen); content+=""; content+=""; content+=""; content+=""; content+="
Name"+SanitizeOutput(name)+"
Public Key"+SanitizeOutput(publickey)+"
Last Seen"+lastseen+"
"; } st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.TargetIdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.IdentityID=? ORDER BY Name COLLATE NOCASE;"); st.Bind(0,identityid); st.Step(); content+=""; content+=""; content+=""; while(st.RowReturned()) { std::string thisid=""; st.ResultText(0,name); st.ResultText(1,publickey); st.ResultText(2,messagetrust); st.ResultText(3,trustlisttrust); st.ResultText(4,thisid); if(publickey.size()>8) { keypart=publickey.substr(3,5); } content+=""; content+=""; content+=""; content+=""; content+="\r\n"; st.Step(); } st=m_db->Prepare("SELECT Name,PublicKey,MessageTrust,TrustListTrust,tblIdentity.IdentityID FROM tblPeerTrust INNER JOIN tblIdentity ON tblPeerTrust.IdentityID=tblIdentity.IdentityID WHERE tblPeerTrust.TargetIdentityID=? ORDER BY Name COLLATE NOCASE;"); st.Bind(0,identityid); st.Step(); content+=""; content+=""; while(st.RowReturned()) { std::string thisid=""; st.ResultText(0,name); st.ResultText(1,publickey); st.ResultText(2,messagetrust); st.ResultText(3,trustlisttrust); st.ResultText(4,thisid); if(publickey.size()>8) { keypart=publickey.substr(3,5); } content+=""; content+=""; content+=""; content+=""; content+=""; st.Step(); } content+="
"; content+="Trust List of this identity"; content+="
Message TrustTrust List Trust
"+SanitizeOutput(name+keypart)+"..."+messagetrust+""+trustlisttrust+"
"; content+="Trust of this identity from other identities"; content+="
Message TrustTrust List Trust
"+SanitizeOutput(name+keypart)+"..."+messagetrust+""+trustlisttrust+"
"; return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content); } const std::string PeerDetailsPage::GetClassString(const std::string &trustlevel) { int tempint=0; std::string tempstr; StringFunctions::Convert(trustlevel,tempint); tempint/=10; StringFunctions::Convert(tempint,tempstr); if(trustlevel!="") { return "class=\"trust"+tempstr+"\""; } else { return ""; } } const bool PeerDetailsPage::WillHandleURI(const std::string &uri) { if(uri.find("peerdetails.")!=std::string::npos) { return true; } else { return false; } }