MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mrs::rest::Handler Class Reference

#include <handler.h>

Inheritance diagram for mrs::rest::Handler:
[legend]

Public Types

using HttpUri = ::http::base::Uri
 
using Protocol = ::mrs::endpoint::handler::Protocol
 
- Public Types inherited from mrs::interface::RestHandler
enum class  Authorization { kNotNeeded , kRequires , kCheck }
 
using SqlSession = mysqlrouter::MySQLSession
 
using RequestContext = mrs::rest::RequestContext
 
using Parameters = mrs::interface::Parameters
 
using HttpResult = mrs::interface::HttpResult
 

Public Member Functions

 Handler (const Protocol protocol, const std::string &url_host, const std::vector< std::string > &rest_path_matcher, const std::optional< std::string > &options, interface::AuthorizeManager *auth_manager)
 
 ~Handler () override
 
void initialize (const Configuration &configuration) override
 
const std::string & get_url_host () const override
 
const std::string & get_protocol () const override
 
bool may_check_access () const override
 
void authorization (RequestContext *ctxt) override
 
bool request_begin (RequestContext *ctxt) override
 
void request_end (RequestContext *ctxt) override
 
bool request_error (RequestContext *ctxt, const http::Error &e) override
 Error handler. More...
 
const interface::Optionsget_options () const override
 
void throw_unauthorize_when_check_auth_fails (RequestContext *)
 
uint32_t check_privileges (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)
 
- Public Member Functions inherited from mrs::interface::RestHandler
virtual ~RestHandler ()=default
 
virtual void initialize (const Configuration &configuration)=0
 
virtual Authorization requires_authentication () const =0
 
virtual const std::string & get_service_path () const =0
 
virtual const std::string & get_schema_path () const =0
 
virtual const std::string & get_db_object_path () const =0
 
virtual UniversalId get_service_id () const =0
 
virtual UniversalId get_db_object_id () const =0
 
virtual UniversalId get_schema_id () const =0
 
virtual uint32_t get_access_rights () const =0
 
virtual HttpResult handle_get (RequestContext *ctxt)=0
 
virtual HttpResult handle_post (RequestContext *ctxt, const std::vector< uint8_t > &document)=0
 
virtual HttpResult handle_delete (RequestContext *ctxt)=0
 
virtual HttpResult handle_put (RequestContext *ctxt)=0
 

Protected Member Functions

const std::string & empty_path () const
 

Protected Attributes

interface::Options options_
 
const std::string url_host_
 
std::vector< std::string > rest_path_matcher_
 
std::vector< void * > handler_id_
 
interface::AuthorizeManagerauthorization_manager_
 
const std::string protocol_
 
std::shared_ptr< Configuration > configuration_
 
bool log_level_is_debug_
 
bool log_level_is_info_
 

Member Typedef Documentation

◆ HttpUri

◆ Protocol

Constructor & Destructor Documentation

◆ Handler()

Handler::Handler ( const Protocol  protocol,
const std::string &  url_host,
const std::vector< std::string > &  rest_path_matcher,
const std::optional< std::string > &  options,
interface::AuthorizeManager auth_manager 
)

◆ ~Handler()

Handler::~Handler ( )
override

Member Function Documentation

◆ authorization()

void Handler::authorization ( RequestContext ctxt)
overridevirtual

◆ check_privileges()

uint32_t Handler::check_privileges ( 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 
)

◆ empty_path()

const std::string & Handler::empty_path ( ) const
protected

◆ get_options()

const interface::Options & Handler::get_options ( ) const
overridevirtual

◆ get_protocol()

const std::string & Handler::get_protocol ( ) const
overridevirtual

◆ get_url_host()

const std::string & Handler::get_url_host ( ) const
overridevirtual

◆ initialize()

void Handler::initialize ( const Configuration &  configuration)
override

◆ may_check_access()

bool Handler::may_check_access ( ) const
overridevirtual

◆ request_begin()

bool Handler::request_begin ( RequestContext ctxt)
overridevirtual

◆ request_end()

void Handler::request_end ( RequestContext ctxt)
overridevirtual

◆ request_error()

bool Handler::request_error ( RequestContext ctxt,
const http::Error e 
)
overridevirtual

Error handler.

Method that allows customization of error handling.

Returns
true in case when the handler send response to the client
false in case when the default handler should send a response to the client

Implements mrs::interface::RestHandler.

◆ throw_unauthorize_when_check_auth_fails()

void Handler::throw_unauthorize_when_check_auth_fails ( RequestContext ctxt)

Member Data Documentation

◆ authorization_manager_

interface::AuthorizeManager* mrs::rest::Handler::authorization_manager_
protected

◆ configuration_

std::shared_ptr<Configuration> mrs::rest::Handler::configuration_
protected

◆ handler_id_

std::vector<void *> mrs::rest::Handler::handler_id_
protected

◆ log_level_is_debug_

bool mrs::rest::Handler::log_level_is_debug_
protected

◆ log_level_is_info_

bool mrs::rest::Handler::log_level_is_info_
protected

◆ options_

interface::Options mrs::rest::Handler::options_
protected

◆ protocol_

const std::string mrs::rest::Handler::protocol_
protected

◆ rest_path_matcher_

std::vector<std::string> mrs::rest::Handler::rest_path_matcher_
protected

◆ url_host_

const std::string mrs::rest::Handler::url_host_
protected

The documentation for this class was generated from the following files: