61 using Ptr = std::shared_ptr<Action>;
63 Action(std::string identifier);
66 std::string get_identifier()
const {
return identifier_; };
67 std::string get_status()
const {
return status_; };
68 std::string get_message()
const {
return message_; };
69 std::string get_custom_error()
const {
return custom_error_; };
70 int get_last_insert_id()
const {
return last_insert_id_; };
71 bool get_final()
const {
return final_; };
72 bool get_error()
const {
return error_; };
73 std::vector<Query::Parameter::Ptr>& get_parameters()
75 auto& var = parameters_;
78 Query::Condition<Action&>::Ptr get_condition()
80 auto& var = condition_;
83 Query::Results::Ptr get_results()
88 JSON::Object::Ptr get_json_result()
90 auto& var = json_result_;
93 std::vector<Ptr>& get_actions_container()
95 auto& var = actions_container_;
98 std::string get_sql_code()
const {
return sql_code_; };
99 std::string get_final_query()
const {
return final_query_;}
100 int get_affected_rows_()
const {
return affected_rows_;}
101 std::shared_ptr<Data::Session>& get_session()
103 auto& var = session_;
106 std::shared_ptr<Data::Statement>& get_query()
113 auto& var = credentials_;
117 void set_identifier(std::string identifier) { identifier_ = identifier; };
118 void set_status(std::string status) { status_ = status; };
119 void set_message(std::string message) { message_ = message; };
120 void set_custom_error(std::string custom_error) { custom_error_ = custom_error; };
121 void set_final(
bool final) { final_ =
final; };
122 void set_error(
bool error) { error_ = error; };
123 void set_sql_code(std::string sql_code) { sql_code_ = sql_code; };
124 void set_final_query(std::string final_query) {final_query_ = final_query;}
126 void ReplaceParamater_(Query::Parameter::Ptr parameter);
127 std::vector<Query::Parameter::Ptr>::iterator GetParameter(std::string name);
128 Query::Parameter::Ptr AddParameter_(std::string name, std::string value_string,
bool editable);
129 Query::Parameter::Ptr AddParameter_(std::string name,
const char* value_string,
bool editable);
130 Query::Parameter::Ptr AddParameter_(std::string name,
int value_int,
bool editable);
131 Query::Parameter::Ptr AddParameter_(std::string name,
float value_float,
bool editable);
132 Query::Parameter::Ptr AddParameter_(std::string name,
bool value_bool,
bool editable);
133 Query::Parameter::Ptr AddParameter_(std::string name, Tools::DValue::Ptr value,
bool editable);
134 Query::Parameter::Ptr AddParameter_(std::string name,
Query::Field::Position field_position, std::string related_action,
bool editable);
135 void SetupCondition_(std::string identifier, Query::ConditionType type, Query::Condition<Action&>::Functor functor);
136 bool ComposeQuery_();
137 void ExecuteQuery_();
138 void ExecuteAsyncQuery_();
140 JSON::Object::Ptr CreateJSONResult_();
141 virtual bool Work_();
144 void GetLastInsertID_();
145 void NotifyError_(std::string message);
146 void SetupPositionParameter_(Query::Parameter::Ptr parameter);
147 bool VerifyParameterCondition_(Query::Parameter::Ptr parameter);
148 bool VerifyCondition_();
151 bool InitializeQuery_();
154 bool async_finished_;
155 std::string identifier_;
157 std::string message_;
158 std::string custom_error_;
162 std::vector<Query::Parameter::Ptr> parameters_;
163 Query::Condition<Action&>::Ptr condition_;
164 std::shared_ptr<Query::Results> results_;
165 JSON::Object::Ptr json_result_;
166 std::vector<Ptr> actions_container_;
167 std::string sql_code_;
168 std::string final_query_;
170 std::shared_ptr<Data::Session> session_;
171 std::shared_ptr<Data::Statement> query_;