//this file is generated by program(drogon_ctl) automatically,don't modify it! #include "restful_controller_base_cc.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "create_model.h" using namespace drogon_ctl; using namespace drogon; std::string restful_controller_base_cc::genText(const DrTemplateData& restful_controller_base_cc_view_data) { drogon::OStringStream restful_controller_base_cc_tmp_stream; std::string layoutName{""}; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "/**\n"; restful_controller_base_cc_tmp_stream << " *\n"; restful_controller_base_cc_tmp_stream << " * "; { auto & val=restful_controller_base_cc_view_data["fileName"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base.cc\n"; restful_controller_base_cc_tmp_stream << " * DO NOT EDIT. This file is generated by drogon_ctl automatically.\n"; restful_controller_base_cc_tmp_stream << " * Users should implement business logic in the derived class.\n"; restful_controller_base_cc_tmp_stream << " */\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "#include \""; { auto & val=restful_controller_base_cc_view_data["fileName"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base.h\"\n"; restful_controller_base_cc_tmp_stream << "#include \n"; restful_controller_base_cc_tmp_stream<<"\n"; auto tableInfo = restful_controller_base_cc_view_data.get("tableInfo"); auto modelName = tableInfo.get("className"); bool hasPrimaryKey = (tableInfo.get("hasPrimaryKey")==1); auto namespaceVector=restful_controller_base_cc_view_data.get>("namespaceVector"); std::string namespaceStr; for(auto &name:namespaceVector) { namespaceStr.append(name); namespaceStr.append("::"); } if(!namespaceStr.empty()) { namespaceStr.resize(namespaceStr.length()-2); restful_controller_base_cc_tmp_stream<<"using namespace "<("className").length(), ' '); if(hasPrimaryKey) { restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::getOne(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream<>(\n"; restful_controller_base_cc_tmp_stream << " std::move(callback));\n"; restful_controller_base_cc_tmp_stream << " drogon::orm::Mapper<"; restful_controller_base_cc_tmp_stream< mapper(dbClientPtr);\n"; restful_controller_base_cc_tmp_stream << " mapper.findByPrimaryKey(\n"; restful_controller_base_cc_tmp_stream << " id,\n"; restful_controller_base_cc_tmp_stream << " [req, callbackPtr, this]("; restful_controller_base_cc_tmp_stream<(&e.base());\n"; restful_controller_base_cc_tmp_stream << " if(s)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpResponse();\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k404NotFound);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR<setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << "}\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::updateOne(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream<jsonObject();\n"; restful_controller_base_cc_tmp_stream << " if(!jsonPtr)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"No json object is found in the request\";\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream<setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " try\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(isMasquerading())\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(!"; restful_controller_base_cc_tmp_stream<setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " object.updateByMasqueradedJson(*jsonPtr, masqueradingVector());\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(!"; restful_controller_base_cc_tmp_stream<setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " object.updateByJson(*jsonPtr);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " catch(const Json::Exception &e)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"Field type error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return; \n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " if(object.getPrimaryKey() != id)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"Bad primary key\";\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << " auto dbClientPtr = getDbClient();\n"; restful_controller_base_cc_tmp_stream << " auto callbackPtr =\n"; restful_controller_base_cc_tmp_stream << " std::make_shared>(\n"; restful_controller_base_cc_tmp_stream << " std::move(callback));\n"; restful_controller_base_cc_tmp_stream << " drogon::orm::Mapper<"; restful_controller_base_cc_tmp_stream< mapper(dbClientPtr);\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << " mapper.update(\n"; restful_controller_base_cc_tmp_stream << " object,\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const size_t count) \n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(count == 1)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpResponse();\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k202Accepted);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else if(count == 0)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"No resources are updated\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k404NotFound);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " LOG_FATAL << \"More than one resource is updated: \" << count;\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " },\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const DrogonDbException &e) {\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.base().what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << "}\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::deleteOne(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream<>(\n"; restful_controller_base_cc_tmp_stream << " std::move(callback));\n"; restful_controller_base_cc_tmp_stream << " drogon::orm::Mapper<"; restful_controller_base_cc_tmp_stream< mapper(dbClientPtr);\n"; restful_controller_base_cc_tmp_stream << " mapper.deleteByPrimaryKey(\n"; restful_controller_base_cc_tmp_stream << " id,\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const size_t count) {\n"; restful_controller_base_cc_tmp_stream << " if(count == 1)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpResponse();\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k204NoContent);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else if(count == 0)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"No resources deleted\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k404NotFound);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " LOG_FATAL << \"Delete more than one records: \" << count;\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"Database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " },\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const DrogonDbException &e) {\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.base().what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << "}\n"; } restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::get(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback)\n"; restful_controller_base_cc_tmp_stream << "{\n"; restful_controller_base_cc_tmp_stream << " auto dbClientPtr = getDbClient();\n"; restful_controller_base_cc_tmp_stream << " drogon::orm::Mapper<"; restful_controller_base_cc_tmp_stream< mapper(dbClientPtr);\n"; restful_controller_base_cc_tmp_stream << " auto ¶meters = req->parameters();\n"; restful_controller_base_cc_tmp_stream << " auto iter = parameters.find(\"sort\");\n"; restful_controller_base_cc_tmp_stream << " if(iter != parameters.end())\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto sortFields = drogon::utils::splitString(iter->second, \",\");\n"; restful_controller_base_cc_tmp_stream << " for(auto &field : sortFields)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(field.empty())\n"; restful_controller_base_cc_tmp_stream << " continue;\n"; restful_controller_base_cc_tmp_stream << " if(field[0] == '+')\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " field = field.substr(1);\n"; restful_controller_base_cc_tmp_stream << " mapper.orderBy(field, SortOrder::ASC);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else if(field[0] == '-')\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " field = field.substr(1);\n"; restful_controller_base_cc_tmp_stream << " mapper.orderBy(field, SortOrder::DESC);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " mapper.orderBy(field, SortOrder::ASC);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " iter = parameters.find(\"offset\");\n"; restful_controller_base_cc_tmp_stream << " if(iter != parameters.end())\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " try{\n"; restful_controller_base_cc_tmp_stream << " auto offset = std::stoll(iter->second);\n"; restful_controller_base_cc_tmp_stream << " mapper.offset(offset);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " catch(...)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpResponse();\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " iter = parameters.find(\"limit\");\n"; restful_controller_base_cc_tmp_stream << " if(iter != parameters.end())\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " try{\n"; restful_controller_base_cc_tmp_stream << " auto limit = std::stoll(iter->second);\n"; restful_controller_base_cc_tmp_stream << " mapper.limit(limit);\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " catch(...)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpResponse();\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " } \n"; restful_controller_base_cc_tmp_stream << " auto callbackPtr =\n"; restful_controller_base_cc_tmp_stream << " std::make_shared>(\n"; restful_controller_base_cc_tmp_stream << " std::move(callback));\n"; restful_controller_base_cc_tmp_stream << " auto jsonPtr = req->jsonObject();\n"; restful_controller_base_cc_tmp_stream << " if(jsonPtr && jsonPtr->isMember(\"filter\"))\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " try{\n"; restful_controller_base_cc_tmp_stream << " auto criteria = makeCriteria((*jsonPtr)[\"filter\"]);\n"; restful_controller_base_cc_tmp_stream << " mapper.findBy(criteria,\n"; restful_controller_base_cc_tmp_stream << " [req, callbackPtr, this](const std::vector<"; restful_controller_base_cc_tmp_stream< &v) {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret.resize(0);\n"; restful_controller_base_cc_tmp_stream << " for (auto &obj : v)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " ret.append(makeJson(req, obj));\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(HttpResponse::newHttpJsonResponse(ret));\n"; restful_controller_base_cc_tmp_stream << " },\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const DrogonDbException &e) { \n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.base().what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp); \n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " catch(const std::exception &e)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = e.what();\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp);\n"; restful_controller_base_cc_tmp_stream << " return; \n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " mapper.findAll([req, callbackPtr, this](const std::vector<"; restful_controller_base_cc_tmp_stream< &v) {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret.resize(0);\n"; restful_controller_base_cc_tmp_stream << " for (auto &obj : v)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " ret.append(makeJson(req, obj));\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(HttpResponse::newHttpJsonResponse(ret));\n"; restful_controller_base_cc_tmp_stream << " },\n"; restful_controller_base_cc_tmp_stream << " [callbackPtr](const DrogonDbException &e) { \n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.base().what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = \"database error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp = HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp); \n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << "}\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::create(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback)\n"; restful_controller_base_cc_tmp_stream << "{\n"; restful_controller_base_cc_tmp_stream << " auto jsonPtr=req->jsonObject();\n"; restful_controller_base_cc_tmp_stream << " if(!jsonPtr)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"No json object is found in the request\";\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " std::string err;\n"; restful_controller_base_cc_tmp_stream << " if(!doCustomValidations(*jsonPtr, err))\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"] = err;\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " if(isMasquerading())\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(!"; restful_controller_base_cc_tmp_stream<setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " else\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " if(!"; restful_controller_base_cc_tmp_stream<setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return;\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " } \n"; restful_controller_base_cc_tmp_stream << " try \n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream<>(\n"; restful_controller_base_cc_tmp_stream << " std::move(callback));\n"; restful_controller_base_cc_tmp_stream << " drogon::orm::Mapper<"; restful_controller_base_cc_tmp_stream< mapper(dbClientPtr);\n"; restful_controller_base_cc_tmp_stream << " mapper.insert(\n"; restful_controller_base_cc_tmp_stream << " object,\n"; restful_controller_base_cc_tmp_stream << " [req, callbackPtr, this]("; restful_controller_base_cc_tmp_stream<setStatusCode(k500InternalServerError);\n"; restful_controller_base_cc_tmp_stream << " (*callbackPtr)(resp); \n"; restful_controller_base_cc_tmp_stream << " });\n"; restful_controller_base_cc_tmp_stream << " }\n"; restful_controller_base_cc_tmp_stream << " catch(const Json::Exception &e)\n"; restful_controller_base_cc_tmp_stream << " {\n"; restful_controller_base_cc_tmp_stream << " LOG_ERROR << e.what();\n"; restful_controller_base_cc_tmp_stream << " Json::Value ret;\n"; restful_controller_base_cc_tmp_stream << " ret[\"error\"]=\"Field type error\";\n"; restful_controller_base_cc_tmp_stream << " auto resp= HttpResponse::newHttpJsonResponse(ret);\n"; restful_controller_base_cc_tmp_stream << " resp->setStatusCode(k400BadRequest);\n"; restful_controller_base_cc_tmp_stream << " callback(resp);\n"; restful_controller_base_cc_tmp_stream << " return; \n"; restful_controller_base_cc_tmp_stream << " } \n"; restful_controller_base_cc_tmp_stream << "}\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "/*\n"; restful_controller_base_cc_tmp_stream << "void "; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::update(const HttpRequestPtr &req,\n"; restful_controller_base_cc_tmp_stream << " "; restful_controller_base_cc_tmp_stream< &&callback)\n"; restful_controller_base_cc_tmp_stream << "{\n"; restful_controller_base_cc_tmp_stream<<"\n"; restful_controller_base_cc_tmp_stream << "}*/\n"; restful_controller_base_cc_tmp_stream<<"\n"; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base::"; { auto & val=restful_controller_base_cc_view_data["className"]; if(val.type()==typeid(const char *)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); }else if(val.type()==typeid(std::string)||val.type()==typeid(const std::string)){ restful_controller_base_cc_tmp_stream<<*any_cast(&val); } } restful_controller_base_cc_tmp_stream << "Base()\n"; restful_controller_base_cc_tmp_stream << " : RestfulController({\n"; tableInfo = restful_controller_base_cc_view_data.get("tableInfo"); const auto &cols=tableInfo.get>("columns"); for(size_t i=0; igenText(data); } }