/** * * Tokens.cc * DO NOT EDIT. This file is generated by drogon_ctl * */ #include "Tokens.h" #include #include using namespace drogon; using namespace drogon::orm; using namespace drogon_model::sqlite3; const std::string Tokens::Cols::_id = "id"; const std::string Tokens::Cols::_owner_id = "owner_id"; const std::string Tokens::Cols::_exp = "exp"; const std::string Tokens::primaryKeyName = "id"; const bool Tokens::hasPrimaryKey = true; const std::string Tokens::tableName = "tokens"; const std::vector Tokens::metaData_={ {"id","uint64_t","integer",8,1,1,1}, {"owner_id","uint64_t","integer",8,0,0,1}, {"exp","uint64_t","integer",8,0,0,1} }; const std::string &Tokens::getColumnName(size_t index) noexcept(false) { assert(index < metaData_.size()); return metaData_[index].colName_; } Tokens::Tokens(const Row &r, const ssize_t indexOffset) noexcept { if(indexOffset < 0) { if(!r["id"].isNull()) { id_=std::make_shared(r["id"].as()); } if(!r["owner_id"].isNull()) { ownerId_=std::make_shared(r["owner_id"].as()); } if(!r["exp"].isNull()) { exp_=std::make_shared(r["exp"].as()); } } else { size_t offset = (size_t)indexOffset; if(offset + 3 > r.size()) { LOG_FATAL << "Invalid SQL result for this model"; return; } size_t index; index = offset + 0; if(!r[index].isNull()) { id_=std::make_shared(r[index].as()); } index = offset + 1; if(!r[index].isNull()) { ownerId_=std::make_shared(r[index].as()); } index = offset + 2; if(!r[index].isNull()) { exp_=std::make_shared(r[index].as()); } } } Tokens::Tokens(const Json::Value &pJson, const std::vector &pMasqueradingVector) noexcept(false) { if(pMasqueradingVector.size() != 3) { LOG_ERROR << "Bad masquerading vector"; return; } if(!pMasqueradingVector[0].empty() && pJson.isMember(pMasqueradingVector[0])) { dirtyFlag_[0] = true; if(!pJson[pMasqueradingVector[0]].isNull()) { id_=std::make_shared((uint64_t)pJson[pMasqueradingVector[0]].asUInt64()); } } if(!pMasqueradingVector[1].empty() && pJson.isMember(pMasqueradingVector[1])) { dirtyFlag_[1] = true; if(!pJson[pMasqueradingVector[1]].isNull()) { ownerId_=std::make_shared((uint64_t)pJson[pMasqueradingVector[1]].asUInt64()); } } if(!pMasqueradingVector[2].empty() && pJson.isMember(pMasqueradingVector[2])) { dirtyFlag_[2] = true; if(!pJson[pMasqueradingVector[2]].isNull()) { exp_=std::make_shared((uint64_t)pJson[pMasqueradingVector[2]].asUInt64()); } } } Tokens::Tokens(const Json::Value &pJson) noexcept(false) { if(pJson.isMember("id")) { dirtyFlag_[0]=true; if(!pJson["id"].isNull()) { id_=std::make_shared((uint64_t)pJson["id"].asUInt64()); } } if(pJson.isMember("owner_id")) { dirtyFlag_[1]=true; if(!pJson["owner_id"].isNull()) { ownerId_=std::make_shared((uint64_t)pJson["owner_id"].asUInt64()); } } if(pJson.isMember("exp")) { dirtyFlag_[2]=true; if(!pJson["exp"].isNull()) { exp_=std::make_shared((uint64_t)pJson["exp"].asUInt64()); } } } void Tokens::updateByMasqueradedJson(const Json::Value &pJson, const std::vector &pMasqueradingVector) noexcept(false) { if(pMasqueradingVector.size() != 3) { LOG_ERROR << "Bad masquerading vector"; return; } if(!pMasqueradingVector[0].empty() && pJson.isMember(pMasqueradingVector[0])) { if(!pJson[pMasqueradingVector[0]].isNull()) { id_=std::make_shared((uint64_t)pJson[pMasqueradingVector[0]].asUInt64()); } } if(!pMasqueradingVector[1].empty() && pJson.isMember(pMasqueradingVector[1])) { dirtyFlag_[1] = true; if(!pJson[pMasqueradingVector[1]].isNull()) { ownerId_=std::make_shared((uint64_t)pJson[pMasqueradingVector[1]].asUInt64()); } } if(!pMasqueradingVector[2].empty() && pJson.isMember(pMasqueradingVector[2])) { dirtyFlag_[2] = true; if(!pJson[pMasqueradingVector[2]].isNull()) { exp_=std::make_shared((uint64_t)pJson[pMasqueradingVector[2]].asUInt64()); } } } void Tokens::updateByJson(const Json::Value &pJson) noexcept(false) { if(pJson.isMember("id")) { if(!pJson["id"].isNull()) { id_=std::make_shared((uint64_t)pJson["id"].asUInt64()); } } if(pJson.isMember("owner_id")) { dirtyFlag_[1] = true; if(!pJson["owner_id"].isNull()) { ownerId_=std::make_shared((uint64_t)pJson["owner_id"].asUInt64()); } } if(pJson.isMember("exp")) { dirtyFlag_[2] = true; if(!pJson["exp"].isNull()) { exp_=std::make_shared((uint64_t)pJson["exp"].asUInt64()); } } } const uint64_t &Tokens::getValueOfId() const noexcept { const static uint64_t defaultValue = uint64_t(); if(id_) return *id_; return defaultValue; } const std::shared_ptr &Tokens::getId() const noexcept { return id_; } void Tokens::setId(const uint64_t &pId) noexcept { id_ = std::make_shared(pId); dirtyFlag_[0] = true; } const typename Tokens::PrimaryKeyType & Tokens::getPrimaryKey() const { assert(id_); return *id_; } const uint64_t &Tokens::getValueOfOwnerId() const noexcept { const static uint64_t defaultValue = uint64_t(); if(ownerId_) return *ownerId_; return defaultValue; } const std::shared_ptr &Tokens::getOwnerId() const noexcept { return ownerId_; } void Tokens::setOwnerId(const uint64_t &pOwnerId) noexcept { ownerId_ = std::make_shared(pOwnerId); dirtyFlag_[1] = true; } const uint64_t &Tokens::getValueOfExp() const noexcept { const static uint64_t defaultValue = uint64_t(); if(exp_) return *exp_; return defaultValue; } const std::shared_ptr &Tokens::getExp() const noexcept { return exp_; } void Tokens::setExp(const uint64_t &pExp) noexcept { exp_ = std::make_shared(pExp); dirtyFlag_[2] = true; } void Tokens::updateId(const uint64_t id) { id_ = std::make_shared(id); } const std::vector &Tokens::insertColumns() noexcept { static const std::vector inCols={ "owner_id", "exp" }; return inCols; } void Tokens::outputArgs(drogon::orm::internal::SqlBinder &binder) const { if(dirtyFlag_[1]) { if(getOwnerId()) { binder << getValueOfOwnerId(); } else { binder << nullptr; } } if(dirtyFlag_[2]) { if(getExp()) { binder << getValueOfExp(); } else { binder << nullptr; } } } const std::vector Tokens::updateColumns() const { std::vector ret; if(dirtyFlag_[1]) { ret.push_back(getColumnName(1)); } if(dirtyFlag_[2]) { ret.push_back(getColumnName(2)); } return ret; } void Tokens::updateArgs(drogon::orm::internal::SqlBinder &binder) const { if(dirtyFlag_[1]) { if(getOwnerId()) { binder << getValueOfOwnerId(); } else { binder << nullptr; } } if(dirtyFlag_[2]) { if(getExp()) { binder << getValueOfExp(); } else { binder << nullptr; } } } Json::Value Tokens::toJson() const { Json::Value ret; if(getId()) { ret["id"]=(Json::UInt64)getValueOfId(); } else { ret["id"]=Json::Value(); } if(getOwnerId()) { ret["owner_id"]=(Json::UInt64)getValueOfOwnerId(); } else { ret["owner_id"]=Json::Value(); } if(getExp()) { ret["exp"]=(Json::UInt64)getValueOfExp(); } else { ret["exp"]=Json::Value(); } return ret; } Json::Value Tokens::toMasqueradedJson( const std::vector &pMasqueradingVector) const { Json::Value ret; if(pMasqueradingVector.size() == 3) { if(!pMasqueradingVector[0].empty()) { if(getId()) { ret[pMasqueradingVector[0]]=(Json::UInt64)getValueOfId(); } else { ret[pMasqueradingVector[0]]=Json::Value(); } } if(!pMasqueradingVector[1].empty()) { if(getOwnerId()) { ret[pMasqueradingVector[1]]=(Json::UInt64)getValueOfOwnerId(); } else { ret[pMasqueradingVector[1]]=Json::Value(); } } if(!pMasqueradingVector[2].empty()) { if(getExp()) { ret[pMasqueradingVector[2]]=(Json::UInt64)getValueOfExp(); } else { ret[pMasqueradingVector[2]]=Json::Value(); } } return ret; } LOG_ERROR << "Masquerade failed"; if(getId()) { ret["id"]=(Json::UInt64)getValueOfId(); } else { ret["id"]=Json::Value(); } if(getOwnerId()) { ret["owner_id"]=(Json::UInt64)getValueOfOwnerId(); } else { ret["owner_id"]=Json::Value(); } if(getExp()) { ret["exp"]=(Json::UInt64)getValueOfExp(); } else { ret["exp"]=Json::Value(); } return ret; } bool Tokens::validateJsonForCreation(const Json::Value &pJson, std::string &err) { if(pJson.isMember("id")) { if(!validJsonOfField(0, "id", pJson["id"], err, true)) return false; } if(pJson.isMember("owner_id")) { if(!validJsonOfField(1, "owner_id", pJson["owner_id"], err, true)) return false; } else { err="The owner_id column cannot be null"; return false; } if(pJson.isMember("exp")) { if(!validJsonOfField(2, "exp", pJson["exp"], err, true)) return false; } else { err="The exp column cannot be null"; return false; } return true; } bool Tokens::validateMasqueradedJsonForCreation(const Json::Value &pJson, const std::vector &pMasqueradingVector, std::string &err) { if(pMasqueradingVector.size() != 3) { err = "Bad masquerading vector"; return false; } try { if(!pMasqueradingVector[0].empty()) { if(pJson.isMember(pMasqueradingVector[0])) { if(!validJsonOfField(0, pMasqueradingVector[0], pJson[pMasqueradingVector[0]], err, true)) return false; } } if(!pMasqueradingVector[1].empty()) { if(pJson.isMember(pMasqueradingVector[1])) { if(!validJsonOfField(1, pMasqueradingVector[1], pJson[pMasqueradingVector[1]], err, true)) return false; } else { err="The " + pMasqueradingVector[1] + " column cannot be null"; return false; } } if(!pMasqueradingVector[2].empty()) { if(pJson.isMember(pMasqueradingVector[2])) { if(!validJsonOfField(2, pMasqueradingVector[2], pJson[pMasqueradingVector[2]], err, true)) return false; } else { err="The " + pMasqueradingVector[2] + " column cannot be null"; return false; } } } catch(const Json::LogicError &e) { err = e.what(); return false; } return true; } bool Tokens::validateJsonForUpdate(const Json::Value &pJson, std::string &err) { if(pJson.isMember("id")) { if(!validJsonOfField(0, "id", pJson["id"], err, false)) return false; } else { err = "The value of primary key must be set in the json object for update"; return false; } if(pJson.isMember("owner_id")) { if(!validJsonOfField(1, "owner_id", pJson["owner_id"], err, false)) return false; } if(pJson.isMember("exp")) { if(!validJsonOfField(2, "exp", pJson["exp"], err, false)) return false; } return true; } bool Tokens::validateMasqueradedJsonForUpdate(const Json::Value &pJson, const std::vector &pMasqueradingVector, std::string &err) { if(pMasqueradingVector.size() != 3) { err = "Bad masquerading vector"; return false; } try { if(!pMasqueradingVector[0].empty() && pJson.isMember(pMasqueradingVector[0])) { if(!validJsonOfField(0, pMasqueradingVector[0], pJson[pMasqueradingVector[0]], err, false)) return false; } else { err = "The value of primary key must be set in the json object for update"; return false; } if(!pMasqueradingVector[1].empty() && pJson.isMember(pMasqueradingVector[1])) { if(!validJsonOfField(1, pMasqueradingVector[1], pJson[pMasqueradingVector[1]], err, false)) return false; } if(!pMasqueradingVector[2].empty() && pJson.isMember(pMasqueradingVector[2])) { if(!validJsonOfField(2, pMasqueradingVector[2], pJson[pMasqueradingVector[2]], err, false)) return false; } } catch(const Json::LogicError &e) { err = e.what(); return false; } return true; } bool Tokens::validJsonOfField(size_t index, const std::string &fieldName, const Json::Value &pJson, std::string &err, bool isForCreation) { switch(index) { case 0: if(pJson.isNull()) { err="The " + fieldName + " column cannot be null"; return false; } if(isForCreation) { err="The automatic primary key cannot be set"; return false; } if(!pJson.isUInt64()) { err="Type error in the "+fieldName+" field"; return false; } break; case 1: if(pJson.isNull()) { err="The " + fieldName + " column cannot be null"; return false; } if(!pJson.isUInt64()) { err="Type error in the "+fieldName+" field"; return false; } break; case 2: if(pJson.isNull()) { err="The " + fieldName + " column cannot be null"; return false; } if(!pJson.isUInt64()) { err="Type error in the "+fieldName+" field"; return false; } break; default: err="Internal error in the server"; return false; break; } return true; }