audio_trans/cmake-build-debug/drogon_ctl/model_json.cc

139 lines
8.3 KiB
C++
Raw Normal View History

2025-04-07 11:31:21 +08:00
//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);
}
}