26#ifndef _MYSQL_REST_SERVICE_SRC_MRS_ENDPOINT_HANDLER_ROUTINE_UTILITIES_H_
27#define _MYSQL_REST_SERVICE_SRC_MRS_ENDPOINT_HANDLER_ROUTINE_UTILITIES_H_
45 std::weak_ptr<mrs::endpoint::DbObjectEndpoint> &wp) {
47 return locked->get_url().join();
52 const auto &elements_path = requests_uri.get_path_elements();
53 const auto &elements_base = base_uri.get_path_elements();
55 if (elements_path.size() > elements_base.size())
56 return elements_path[elements_base.size()];
62 std::weak_ptr<mrs::endpoint::DbObjectEndpoint> &wp,
79 case DataType::VECTOR:
93 const char *sql_state) {
94 static const std::string k_state_with_user_defined_error =
"45000";
95 if (!sql_state)
throw e;
97 log_debug(
"While handling a routine, received a mysql-error with state: %s",
99 if (k_state_with_user_defined_error != sql_state) {
106 if (e.
code() < 5100 || e.
code() >= 5600) {
117 log_debug(
"routine - generated custom HTTPstats + message:%s", json.c_str());
125 if (!ctxt->
user.has_user_id) {
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4618
Definition: mysql_session.h:288
std::string message() const
Definition: mysql_session.h:303
unsigned int code() const
Definition: mysql_session.h:302
Definition: utils_sqlstring.h:67
Log log_debug(std::cout, "DEBUG")
mrs::rest::Handler::HttpResult HttpResult
Definition: handler_content_file.cc:43
static std::string to_string(const LEX_STRING &str)
Definition: lex_string.h:50
auto get_default_status_text(key_type status)
Definition: status_code.h:114
@ GEOMETRY
Definition: mysqlx_resultset.proto:613
@ BINARY
Definition: context.h:38
std::string to_string(const rapidjson::Value &value)
Definition: rapid_json_to_text.h:67
std::map< std::string, std::string > MapObject
std::map that represents simple JSON object.
Definition: to_string.h:44
@ typeJson
Definition: media_type.h:47
constexpr key_type Forbidden
Definition: status_code.h:67
Request::Uri Uri
Definition: request.cc:36
ColumnType
Definition: column_type.h:48
mysqlrouter::sqlstring sqlstring
Definition: query_retry_on_ro.cc:36
std::shared_ptr< Type > lock_or_throw_unavail(std::weak_ptr< Type > &endpoint)
Definition: utilities.h:52
std::string get_endpoint_url(std::weak_ptr< mrs::endpoint::DbObjectEndpoint > &wp)
Definition: routine_utilities.h:44
mysqlrouter::sqlstring get_user_id(rest::RequestContext *ctxt, bool required)
Definition: routine_utilities.h:121
mysqlrouter::sqlstring get_sql_format(DataType type)
Definition: routine_utilities.h:70
HandlerAuthorizeAuthApps::HttpResult HttpResult
Definition: handler_authorize_auth_apps.cc:45
mrs::database::entry::ColumnType DataType
Definition: routine_utilities.h:68
HttpResult handler_mysqlerror(const mysqlrouter::MySQLSession::Error &e, const char *sql_state)
Definition: routine_utilities.h:92
std::string get_path_after_object_name(const ::http::base::Uri &base_uri, const ::http::base::Uri &requests_uri)
Definition: routine_utilities.h:50
Definition: authorize_manager.h:48
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2894
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
required string type
Definition: replication_group_member_actions.proto:34
Definition: http_result.h:37
int HttpStatus
Definition: http_result.h:39
Definition: request_context.h:47
AuthUser user
Definition: request_context.h:73