Add the toJson() method to the database model
This commit is contained in:
parent
972b0bf600
commit
fe16066a4b
|
@ -300,3 +300,28 @@ void {{className}}::updateArgs(drogon::orm::internal::SqlBinder &binder) const
|
|||
}
|
||||
%>
|
||||
}
|
||||
|
||||
Json::Value {{className}}::toJson() const
|
||||
{
|
||||
Json::Value ret;
|
||||
<%c++for(auto col:cols){%>
|
||||
if(get<%c++$$<<col._colTypeName;%>())
|
||||
{
|
||||
<%c++if(col._colDatabaseType=="date"){%>
|
||||
ret["<%c++$$<<col._colName;%>"]=get<%c++$$<<col._colTypeName;%>()->toCustomedFormattedStringLocal("%Y-%m-%d", false);
|
||||
<%c++}else if(col._colDatabaseType.find("timestamp")!=std::string::npos){%>
|
||||
ret["<%c++$$<<col._colName;%>"]=get<%c++$$<<col._colTypeName;%>()->toCustomedFormattedStringLocal("%Y-%m-%d %H:%M:%S", true);
|
||||
<%c++}else if(col._colDatabaseType=="bytea"){%>
|
||||
ret["<%c++$$<<col._colName;%>"]=drogon::base64Encode((const unsigned char *)get<%c++$$<<col._colTypeName;%>()->data(),get<%c++$$<<col._colTypeName;%>()->size());
|
||||
<%c++}else{%>
|
||||
ret["<%c++$$<<col._colName;%>"]=getValueOf<%c++$$<<col._colTypeName;%>();
|
||||
<%c++}%>
|
||||
}
|
||||
else
|
||||
{
|
||||
ret["<%c++$$<<col._colName;%>"]=Json::Value();
|
||||
}
|
||||
<%c++
|
||||
}%>
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ using namespace drogon_ctl;
|
|||
#include <drogon/orm/Field.h>
|
||||
#include <drogon/orm/SqlBinder.h>
|
||||
#include <trantor/utils/Date.h>
|
||||
#include <json/json.h>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
@ -112,6 +113,8 @@ auto cols=@@.get<std::vector<ColumnInfo>>("columns");
|
|||
const std::vector<std::string> updateColumns() const;
|
||||
void updateArgs(drogon::orm::internal::SqlBinder &binder) const;
|
||||
|
||||
Json::Value toJson() const;
|
||||
|
||||
private:
|
||||
<%c++
|
||||
for(auto col:cols)
|
||||
|
|
|
@ -27,7 +27,7 @@ std::string binaryStringToHex(unsigned char *ptr, size_t length);
|
|||
std::string hexToBinaryString(unsigned char *ptr, size_t length);
|
||||
std::vector<std::string> splitString(const std::string &str, const std::string &separator);
|
||||
std::string getuuid();
|
||||
std::string base64Encode(unsigned char const *bytes_to_encode, unsigned int in_len);
|
||||
std::string base64Encode(const unsigned char *bytes_to_encode, unsigned int in_len);
|
||||
std::string base64Decode(std::string const &encoded_string);
|
||||
std::string urlDecode(const std::string &szToDecode);
|
||||
int gzipCompress(const char *data, const size_t ndata,
|
||||
|
|
|
@ -170,7 +170,7 @@ std::string getuuid()
|
|||
return binaryStringToHex(uu, 16);
|
||||
}
|
||||
|
||||
std::string base64Encode(unsigned char const *bytes_to_encode, unsigned int in_len)
|
||||
std::string base64Encode(const unsigned char *bytes_to_encode, unsigned int in_len)
|
||||
{
|
||||
std::string ret;
|
||||
int i = 0;
|
||||
|
|
Loading…
Reference in New Issue