139 lines
8.3 KiB
C++
139 lines
8.3 KiB
C++
|
//this file is generated by program(drogon_ctl) automatically,don't modify it!
|
||
|
#include "model_json.h"
|
||
|
#include <drogon/utils/OStringStream.h>
|
||
|
#include <string>
|
||
|
#include <map>
|
||
|
#include <vector>
|
||
|
#include <set>
|
||
|
#include <iostream>
|
||
|
#include <unordered_map>
|
||
|
#include <unordered_set>
|
||
|
#include <algorithm>
|
||
|
#include <list>
|
||
|
#include <deque>
|
||
|
#include <queue>
|
||
|
using namespace drogon;
|
||
|
std::string model_json::genText(const DrTemplateData& model_json_view_data)
|
||
|
{
|
||
|
drogon::OStringStream model_json_tmp_stream;
|
||
|
std::string layoutName{""};
|
||
|
model_json_tmp_stream << "{\n";
|
||
|
model_json_tmp_stream << " //rdbms: server type, postgresql,mysql or sqlite3\n";
|
||
|
model_json_tmp_stream << " \"rdbms\": \"postgresql\",\n";
|
||
|
model_json_tmp_stream << " //filename: sqlite3 db file name\n";
|
||
|
model_json_tmp_stream << " //\"filename\":\"\",\n";
|
||
|
model_json_tmp_stream << " //host: server address,localhost by default;\n";
|
||
|
model_json_tmp_stream << " \"host\": \"127.0.0.1\",\n";
|
||
|
model_json_tmp_stream << " //port: server port, 5432 by default;\n";
|
||
|
model_json_tmp_stream << " \"port\": 5432,\n";
|
||
|
model_json_tmp_stream << " //dbname: Database name;\n";
|
||
|
model_json_tmp_stream << " \"dbname\": \"\",\n";
|
||
|
model_json_tmp_stream << " //schema: valid for postgreSQL, \"public\" by default;\n";
|
||
|
model_json_tmp_stream << " \"schema\": \"public\",\n";
|
||
|
model_json_tmp_stream << " //user: User name\n";
|
||
|
model_json_tmp_stream << " \"user\": \"\",\n";
|
||
|
model_json_tmp_stream << " //password or passwd: Password\n";
|
||
|
model_json_tmp_stream << " \"password\": \"\",\n";
|
||
|
model_json_tmp_stream << " //client_encoding: The character set used by drogon_ctl. it is empty string by default which \n";
|
||
|
model_json_tmp_stream << " //means use the default character set.\n";
|
||
|
model_json_tmp_stream << " //\"client_encoding\": \"\",\n";
|
||
|
model_json_tmp_stream << " //table: An array of tables to be modelized. if the array is empty, all revealed tables are modelized.\n";
|
||
|
model_json_tmp_stream << " \"tables\": [],\n";
|
||
|
model_json_tmp_stream << " //convert: the value can be changed by a function call before it is stored into database or\n";
|
||
|
model_json_tmp_stream << " //after it is read from database\n";
|
||
|
model_json_tmp_stream << " \"convert\": {\n";
|
||
|
model_json_tmp_stream << " \"enabled\": false,\n";
|
||
|
model_json_tmp_stream << " \"items\":[{\n";
|
||
|
model_json_tmp_stream << " \"table\": \"user\",\n";
|
||
|
model_json_tmp_stream << " \"column\": \"password\",\n";
|
||
|
model_json_tmp_stream << " \"method\": {\n";
|
||
|
model_json_tmp_stream << " //after_db_read: name of the method which is called after reading from database, signature: void([const] std::shared_ptr [&])\n";
|
||
|
model_json_tmp_stream << " \"after_db_read\": \"decrypt_password\",\n";
|
||
|
model_json_tmp_stream << " //before_db_write: name of the method which is called before writing to database, signature: void([const] std::shared_ptr [&])\n";
|
||
|
model_json_tmp_stream << " \"before_db_write\": \"encrypt_password\"\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " \"includes\": [\n";
|
||
|
model_json_tmp_stream << " \"\\\"file_local_search_path.h\\\"\",\"<file_in_global_search_path.h>\"\n";
|
||
|
model_json_tmp_stream << " ]\n";
|
||
|
model_json_tmp_stream << " }]\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " \"relationships\": {\n";
|
||
|
model_json_tmp_stream << " \"enabled\": false,\n";
|
||
|
model_json_tmp_stream << " \"items\": [{\n";
|
||
|
model_json_tmp_stream << " \"type\": \"has one\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_name\": \"products\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_alias\": \"product\",\n";
|
||
|
model_json_tmp_stream << " \"original_key\": \"id\",\n";
|
||
|
model_json_tmp_stream << " \"target_table_name\": \"skus\",\n";
|
||
|
model_json_tmp_stream << " \"target_table_alias\": \"SKU\",\n";
|
||
|
model_json_tmp_stream << " \"target_key\": \"product_id\",\n";
|
||
|
model_json_tmp_stream << " \"enable_reverse\": true\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " {\n";
|
||
|
model_json_tmp_stream << " \"type\": \"has many\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_name\": \"products\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_alias\": \"product\",\n";
|
||
|
model_json_tmp_stream << " \"original_key\": \"id\",\n";
|
||
|
model_json_tmp_stream << " \"target_table_name\": \"reviews\",\n";
|
||
|
model_json_tmp_stream << " \"target_table_alias\": \"\",\n";
|
||
|
model_json_tmp_stream << " \"target_key\": \"product_id\",\n";
|
||
|
model_json_tmp_stream << " \"enable_reverse\": true\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " {\n";
|
||
|
model_json_tmp_stream << " \"type\": \"many to many\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_name\": \"products\",\n";
|
||
|
model_json_tmp_stream << " \"original_table_alias\": \"\",\n";
|
||
|
model_json_tmp_stream << " \"original_key\": \"id\",\n";
|
||
|
model_json_tmp_stream << " \"pivot_table\": {\n";
|
||
|
model_json_tmp_stream << " \"table_name\": \"carts_products\",\n";
|
||
|
model_json_tmp_stream << " \"original_key\": \"product_id\",\n";
|
||
|
model_json_tmp_stream << " \"target_key\": \"cart_id\"\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " \"target_table_name\": \"carts\",\n";
|
||
|
model_json_tmp_stream << " \"target_table_alias\": \"\",\n";
|
||
|
model_json_tmp_stream << " \"target_key\": \"id\",\n";
|
||
|
model_json_tmp_stream << " \"enable_reverse\": true\n";
|
||
|
model_json_tmp_stream << " }\n";
|
||
|
model_json_tmp_stream << " ]\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " \"restful_api_controllers\": {\n";
|
||
|
model_json_tmp_stream << " \"enabled\": false,\n";
|
||
|
model_json_tmp_stream << " // resource_uri: The URI to access the resource, the default value \n";
|
||
|
model_json_tmp_stream << " // is '/*' in which the asterisk represents the table name.\n";
|
||
|
model_json_tmp_stream << " // If this option is set to a empty string, the URI is composed of the namespaces and the class name.\n";
|
||
|
model_json_tmp_stream << " \"resource_uri\": \"/*\",\n";
|
||
|
model_json_tmp_stream << " // class_name: \"Restful*Ctrl\" by default, the asterisk represents the table name.\n";
|
||
|
model_json_tmp_stream << " // This option can contain namespaces.\n";
|
||
|
model_json_tmp_stream << " \"class_name\": \"Restful*Ctrl\",\n";
|
||
|
model_json_tmp_stream << " // filters: an array of filter names.\n";
|
||
|
model_json_tmp_stream << " \"filters\": [],\n";
|
||
|
model_json_tmp_stream << " // db_client: the database client used by the controller. this option must be consistent with\n";
|
||
|
model_json_tmp_stream << " // the configuration of the application.\n";
|
||
|
model_json_tmp_stream << " \"db_client\": {\n";
|
||
|
model_json_tmp_stream << " //name: Name of the client,'default' by default\n";
|
||
|
model_json_tmp_stream << " \"name\": \"default\",\n";
|
||
|
model_json_tmp_stream << " //is_fast: \n";
|
||
|
model_json_tmp_stream << " \"is_fast\": false\n";
|
||
|
model_json_tmp_stream << " },\n";
|
||
|
model_json_tmp_stream << " // directory: The directory where the controller source files are stored.\n";
|
||
|
model_json_tmp_stream << " \"directory\": \"controllers\",\n";
|
||
|
model_json_tmp_stream << " // generate_base_only: false by default. Set to true to avoid overwriting custom subclasses.\n";
|
||
|
model_json_tmp_stream << " \"generate_base_only\": false\n";
|
||
|
model_json_tmp_stream << " }\n";
|
||
|
model_json_tmp_stream << "}\n";
|
||
|
if(layoutName.empty())
|
||
|
{
|
||
|
std::string ret{std::move(model_json_tmp_stream.str())};
|
||
|
return ret;
|
||
|
}else
|
||
|
{
|
||
|
auto templ = DrTemplateBase::newTemplate(layoutName);
|
||
|
if(!templ) return "";
|
||
|
HttpViewData data = model_json_view_data;
|
||
|
auto str = std::move(model_json_tmp_stream.str());
|
||
|
if(!str.empty() && str[str.length()-1] == '\n') str.resize(str.length()-1);
|
||
|
data[""] = std::move(str);
|
||
|
return templ->genText(data);
|
||
|
}
|
||
|
}
|