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

170 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 "restful_controller_base_h.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>
#include "create_model.h"
using namespace drogon_ctl;
using namespace drogon;
std::string restful_controller_base_h::genText(const DrTemplateData& restful_controller_base_h_view_data)
{
drogon::OStringStream restful_controller_base_h_tmp_stream;
std::string layoutName{""};
restful_controller_base_h_tmp_stream << "/**\n";
restful_controller_base_h_tmp_stream << " *\n";
restful_controller_base_h_tmp_stream << " * ";
{
auto & val=restful_controller_base_h_view_data["fileName"];
if(val.type()==typeid(const char *)){
restful_controller_base_h_tmp_stream<<*any_cast<const char *>(&val);
}else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){
restful_controller_base_h_tmp_stream<<*any_cast<const std::string>(&val);
}
}
restful_controller_base_h_tmp_stream << "Base.h\n";
restful_controller_base_h_tmp_stream << " * DO NOT EDIT. This file is generated by drogon_ctl automatically.\n";
restful_controller_base_h_tmp_stream << " * Users should implement business logic in the derived class.\n";
restful_controller_base_h_tmp_stream << " */\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << "#pragma once\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << "#include <drogon/HttpController.h>\n";
restful_controller_base_h_tmp_stream << "#include <drogon/orm/RestfulController.h>\n";
restful_controller_base_h_tmp_stream<<"\n";
auto tableInfo = restful_controller_base_h_view_data.get<DrTemplateData>("tableInfo");
auto modelName = tableInfo.get<std::string>("className");
restful_controller_base_h_tmp_stream<<"#include \""<<modelName<<".h\"\n";
bool hasPrimaryKey = (tableInfo.get<int>("hasPrimaryKey")==1);
restful_controller_base_h_tmp_stream<<"using namespace drogon;\n";
restful_controller_base_h_tmp_stream<<"using namespace drogon::orm;\n";
restful_controller_base_h_tmp_stream<<"using namespace drogon_model::"<<tableInfo.get<std::string>("dbName");
auto &schema=tableInfo.get<std::string>("schema");
if(!schema.empty())
{
restful_controller_base_h_tmp_stream<<"::"<<schema<<";\n";
}
else
{
restful_controller_base_h_tmp_stream<<";\n";
}
auto namespaceVector=restful_controller_base_h_view_data.get<std::vector<std::string>>("namespaceVector");
for(auto &name:namespaceVector)
{
restful_controller_base_h_tmp_stream << "namespace ";
restful_controller_base_h_tmp_stream<<name;
restful_controller_base_h_tmp_stream << " \n";
restful_controller_base_h_tmp_stream << "{\n";
}
restful_controller_base_h_tmp_stream << "/**\n";
restful_controller_base_h_tmp_stream << " * @brief this class is created by the drogon_ctl command.\n";
restful_controller_base_h_tmp_stream << " * this class is a restful API controller for reading and writing the ";
{
auto & val=restful_controller_base_h_view_data["tableName"];
if(val.type()==typeid(const char *)){
restful_controller_base_h_tmp_stream<<*any_cast<const char *>(&val);
}else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){
restful_controller_base_h_tmp_stream<<*any_cast<const std::string>(&val);
}
}
restful_controller_base_h_tmp_stream << " table.\n";
restful_controller_base_h_tmp_stream << " */\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << "class ";
{
auto & val=restful_controller_base_h_view_data["className"];
if(val.type()==typeid(const char *)){
restful_controller_base_h_tmp_stream<<*any_cast<const char *>(&val);
}else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){
restful_controller_base_h_tmp_stream<<*any_cast<const std::string>(&val);
}
}
restful_controller_base_h_tmp_stream << "Base : public RestfulController\n";
restful_controller_base_h_tmp_stream << "{\n";
restful_controller_base_h_tmp_stream << " public:\n";
if(hasPrimaryKey)
{
restful_controller_base_h_tmp_stream << " void getOne(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << " std::function<void(const HttpResponsePtr &)> &&callback,\n";
restful_controller_base_h_tmp_stream << " ";
restful_controller_base_h_tmp_stream<<modelName;
restful_controller_base_h_tmp_stream << "::PrimaryKeyType &&id);\n";
restful_controller_base_h_tmp_stream << " void updateOne(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << " std::function<void(const HttpResponsePtr &)> &&callback,\n";
restful_controller_base_h_tmp_stream << " ";
restful_controller_base_h_tmp_stream<<modelName;
restful_controller_base_h_tmp_stream << "::PrimaryKeyType &&id);\n";
restful_controller_base_h_tmp_stream << " void deleteOne(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << " std::function<void(const HttpResponsePtr &)> &&callback,\n";
restful_controller_base_h_tmp_stream << " ";
restful_controller_base_h_tmp_stream<<modelName;
restful_controller_base_h_tmp_stream << "::PrimaryKeyType &&id);\n";
}
restful_controller_base_h_tmp_stream << " void get(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << " std::function<void(const HttpResponsePtr &)> &&callback);\n";
restful_controller_base_h_tmp_stream << " void create(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << " std::function<void(const HttpResponsePtr &)> &&callback);\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << "// void update(const HttpRequestPtr &req,\n";
restful_controller_base_h_tmp_stream << "// std::function<void(const HttpResponsePtr &)> &&callback);\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << " orm::DbClientPtr getDbClient() \n";
restful_controller_base_h_tmp_stream << " {\n";
restful_controller_base_h_tmp_stream << " return drogon::app().get";
restful_controller_base_h_tmp_stream<<(restful_controller_base_h_view_data.get<bool>("isFastDbClient")?"Fast":"");
restful_controller_base_h_tmp_stream << "DbClient(dbClientName_);\n";
restful_controller_base_h_tmp_stream << " }\n";
restful_controller_base_h_tmp_stream<<"\n";
restful_controller_base_h_tmp_stream << " protected:\n";
restful_controller_base_h_tmp_stream << " /// Ensure that subclasses inherited from this class are instantiated.\n";
restful_controller_base_h_tmp_stream << " ";
{
auto & val=restful_controller_base_h_view_data["className"];
if(val.type()==typeid(const char *)){
restful_controller_base_h_tmp_stream<<*any_cast<const char *>(&val);
}else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){
restful_controller_base_h_tmp_stream<<*any_cast<const std::string>(&val);
}
}
restful_controller_base_h_tmp_stream << "Base();\n";
restful_controller_base_h_tmp_stream << " const std::string dbClientName_{\"";
{
auto & val=restful_controller_base_h_view_data["dbClientName"];
if(val.type()==typeid(const char *)){
restful_controller_base_h_tmp_stream<<*any_cast<const char *>(&val);
}else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){
restful_controller_base_h_tmp_stream<<*any_cast<const std::string>(&val);
}
}
restful_controller_base_h_tmp_stream << "\"};\n";
restful_controller_base_h_tmp_stream << "};\n";
for(size_t i=0;i<namespaceVector.size();++i)
{
restful_controller_base_h_tmp_stream<<"}\n";
}
if(layoutName.empty())
{
std::string ret{std::move(restful_controller_base_h_tmp_stream.str())};
return ret;
}else
{
auto templ = DrTemplateBase::newTemplate(layoutName);
if(!templ) return "";
HttpViewData data = restful_controller_base_h_view_data;
auto str = std::move(restful_controller_base_h_tmp_stream.str());
if(!str.empty() && str[str.length()-1] == '\n') str.resize(str.length()-1);
data[""] = std::move(str);
return templ->genText(data);
}
}