26#ifndef ROUTER_SRC_REST_MRS_SRC_MRS_REST_REQUEST_HANDLER_H_
27#define ROUTER_SRC_REST_MRS_SRC_MRS_REST_REQUEST_HANDLER_H_
45 const std::vector<database::entry::AuthPrivilege> &privileges,
46 const UniversalId &service_id,
const std::string &service_path,
47 const UniversalId &schema_id,
const std::string &schema_path,
48 const UniversalId &db_object_id,
const std::string &db_object_path);
67 const bool may_log_requests)
130 const std::exception &e) {
141 template <
typename Err>
149 const std::string &status_text);
156 const std::map<std::string, std::string> &fields);
160 const rapidjson::Document &json_doc);
Definition: cache_manager.h:41
MySqlCacheManager::CachedObject CachedObject
Definition: mysql_cache_manager.h:92
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4741
Definition: io_buffer.h:41
Definition: request_handler.h:36
std::string message
Definition: error.h:50
Definition: authorize_manager.h:58
Definition: rest_error.h:51
Definition: rest_handler.h:77
Definition: rest_handler.h:62
User visible error message.
Definition: rest_error.h:42
Definition: rest_handler.h:141
Definition: rest_request_handler.h:50
static http::Error err_to_http_error(const mysqlrouter::MySQLSession::Error &err)
void handle_error(RestHandler *handler, RequestContext *ctxt, const Err &err)
void trace_error(const http::ErrorChangeResponse &e)
ObjectKeyValue responose_encode_error(const http::Error &, const mysqlrouter::MySQLSession::Error &e)
Definition: rest_request_handler.h:121
void send_reply(HttpRequest &req, int status_code)
HandlerPtr rest_handler_
Definition: rest_request_handler.h:162
ObjectKeyValue responose_encode_error(const http::Error &converted, const http::Error &)
Definition: rest_request_handler.h:135
static http::Error err_to_http_error(const mrs::database::JSONInputError &err)
Definition: rest_request_handler.h:100
void trace_error(const RestError &e)
void trace_http(const char *type, interface::ReqRes &options, HttpMethod::key_type method, const std::string &path, const HttpHeaders &headers, HttpBuffer &buffer) const
const bool may_log_requests_
Definition: rest_request_handler.h:164
std::map< std::string, std::string > ObjectKeyValue
Definition: rest_request_handler.h:61
mysql_harness::logging::DomainLogger logger_
Definition: rest_request_handler.h:91
static std::string mask_password(const std::string &input)
RestRequestHandler(HandlerPtr rest_handler, mrs::interface::AuthorizeManager *auth_manager, const bool may_log_requests)
Definition: rest_request_handler.h:65
void send_reply(HttpRequest &req, int status_code, const std::string &status_text)
void trace_error(const http::Error &e)
static const http::Error & err_to_http_error(const http::Error &err)
Definition: rest_request_handler.h:96
void send_reply(HttpRequest &req, int status_code, const std::string &status_text, HttpBuffer &buffer)
database::entry::AuthUser AuthUser
Definition: rest_request_handler.h:53
mrs::interface::AuthorizeManager * auth_manager_
Definition: rest_request_handler.h:163
Handler::HttpResult handle_request_impl(RestHandler *handler, RequestContext &ctxt)
void send_rfc7807_error(HttpRequest &req, HttpStatusCode::key_type status_code, const std::map< std::string, std::string > &fields)
static http::Error err_to_http_error(const RestError &err)
Definition: rest_request_handler.h:105
static http::Error err_to_http_error(const std::invalid_argument &err)
Definition: rest_request_handler.h:113
const Options & get_options()
void handle_request(::http::base::Request &req) override
static http::Error err_to_http_error(const std::exception &)
Definition: rest_request_handler.h:117
ObjectKeyValue responose_encode_error(const http::Error &converted, const std::exception &e)
Definition: rest_request_handler.h:129
static http::Error err_to_http_error(const ETagMismatch &err)
Definition: rest_request_handler.h:109
void trace_error(const mysqlrouter::MySQLSession::Error &e)
void trace_error(const std::exception &e)
std::weak_ptr< RestHandler > HandlerPtr
Definition: rest_request_handler.h:55
void send_json_document(HttpRequest &req, HttpStatusCode::key_type status_code, const rapidjson::Document &json_doc)
void trace_error(const Handler::HttpResult &e)
Definition: mysql_session.h:289
std::string message() const
Definition: mysql_session.h:304
unsigned int code() const
Definition: mysql_session.h:303
static std::string to_string(const LEX_STRING &str)
Definition: lex_string.h:50
static char * path
Definition: mysqldump.cc:150
constexpr pos_type Options
Definition: method.h:48
int key_type
Definition: method.h:38
int key_type
Definition: status_code.h:36
constexpr key_type InternalError
Definition: status_code.h:93
constexpr key_type PreconditionFailed
Definition: status_code.h:76
constexpr key_type BadRequest
Definition: status_code.h:64
Request::IOBuffer IOBuffer
Definition: request.cc:32
Request::Headers Headers
Definition: request.cc:34
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:924
mrs::database::entry::AuthUser AuthUser
Definition: scram_handler.cc:54
mrs::interface::RestError RestError
Definition: filter_object_generator.cc:52
uint32_t do_privilege_check(const std::vector< database::entry::AuthPrivilege > &privileges, const UniversalId &service_id, const std::string &service_path, const UniversalId &schema_id, const std::string &schema_path, const UniversalId &db_object_id, const std::string &db_object_path)
Definition: authorize_manager.h:48
mrs::database::entry::UniversalId UniversalId
Definition: universal_id.h:33
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
Definition: options.cc:57
struct result result
Definition: result.h:34
required string type
Definition: replication_group_member_actions.proto:34
RestClient::Request Request
Definition: rest_client.cc:29
Definition: http_result.h:37
Definition: request_context.h:47