mirror of
https://gitee.com/an-tao/drogon.git
synced 2024-12-04 20:57:50 +08:00
70eda27427
* Add the ability to create restful API controllers * Update the model.json template file * Modify the 'create controller' command of the drogon_ctl * access column values by column array indexes instead of column names when constructing an instance of a model class * Fix a bug of mysql database * Add some static SQL into models * Add validations to models * Add setToNull method to models * Support 'where in' substatement * Delay rendering from json to the response body. This allows users to modify the json object before sending a response. * Add synchronous method to the HttpClient class
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
/**
|
|
*
|
|
* [[fileName]].cc
|
|
* This file is generated by drogon_ctl
|
|
*
|
|
*/
|
|
|
|
#include "[[fileName]].h"
|
|
#include <string>
|
|
|
|
<%c++
|
|
|
|
auto tableInfo = @@.get<DrTemplateData>("tableInfo");
|
|
auto modelName = tableInfo.get<std::string>("className");
|
|
bool hasPrimaryKey = (tableInfo.get<int>("hasPrimaryKey")==1);
|
|
|
|
|
|
auto namespaceVector=@@.get<std::vector<std::string>>("namespaceVector");
|
|
std::string namespaceStr;
|
|
for(auto &name:namespaceVector)
|
|
{
|
|
namespaceStr.append(name);
|
|
namespaceStr.append("::");
|
|
}
|
|
if(!namespaceStr.empty())
|
|
{
|
|
namespaceStr.resize(namespaceStr.length()-2);
|
|
$$<<"using namespace "<<namespaceStr<<";\n";
|
|
}
|
|
std::string indentStr(@@.get<std::string>("className").length(), ' ');
|
|
%>
|
|
|
|
<%c++
|
|
if(hasPrimaryKey)
|
|
{%>
|
|
void [[className]]::getOne(const HttpRequestPtr &req,
|
|
{%indentStr%} std::function<void(const HttpResponsePtr &)> &&callback,
|
|
{%indentStr%} {%modelName%}::PrimaryKeyType &&id)
|
|
{
|
|
[[className]]Base::getOne(req, std::move(callback), std::move(id));
|
|
}
|
|
|
|
|
|
void [[className]]::updateOne(const HttpRequestPtr &req,
|
|
{%indentStr%} std::function<void(const HttpResponsePtr &)> &&callback,
|
|
{%indentStr%} {%modelName%}::PrimaryKeyType &&id)
|
|
{
|
|
[[className]]Base::updateOne(req, std::move(callback), std::move(id));
|
|
}
|
|
|
|
|
|
void [[className]]::deleteOne(const HttpRequestPtr &req,
|
|
{%indentStr%} std::function<void(const HttpResponsePtr &)> &&callback,
|
|
{%indentStr%} {%modelName%}::PrimaryKeyType &&id)
|
|
{
|
|
[[className]]Base::deleteOne(req, std::move(callback), std::move(id));
|
|
}
|
|
<%c++}%>
|
|
|
|
void [[className]]::get(const HttpRequestPtr &req,
|
|
{%indentStr%} std::function<void(const HttpResponsePtr &)> &&callback)
|
|
{
|
|
[[className]]Base::get(req, std::move(callback));
|
|
}
|
|
|
|
void [[className]]::create(const HttpRequestPtr &req,
|
|
{%indentStr%} std::function<void(const HttpResponsePtr &)> &&callback)
|
|
{
|
|
[[className]]Base::create(req, std::move(callback));
|
|
}
|