26#ifndef ROUTER_SRC_REST_MRS_SRC_MRS_HTTP_URL_PATH_QUERY_H_
27#define ROUTER_SRC_REST_MRS_SRC_MRS_HTTP_URL_PATH_QUERY_H_
52 using Keys = std::vector<std::string>;
53 using Values = std::vector<std::string>;
58 const std::string &
value) {
80 std::optional<std::string> *
value)
const {
83 if (it !=
query.end()) {
92 std::string *
value)
const {
101 const std::string &
key) {
109 const char *conversion_failure_message) {
112 conversion_failure_message);
114 return std::stoull(
value);
119 conversion_failure_message);
124 uint64_t *out_limit) {
125 if (
query.empty())
return;
127 auto of =
query.find(
"offset");
128 auto li =
query.find(
"limit");
130 if (of !=
query.end()) {
132 to_uint64(of->second.c_str(),
"Invalid value for 'offset' parameter");
135 if (li !=
query.end()) {
137 to_uint64(li->second.c_str(),
"Invalid value for 'limit' parameter");
Url(const HttpUri &uri)
Definition: url.h:55
bool is_query_parameter(const std::string &key) const
Definition: url.h:96
std::vector< std::string > Keys
Definition: url.h:52
std::string get_query_parameter(const std::string &key) const
Definition: url.h:72
HttpUri uri_
Definition: url.h:146
std::string get_path()
Definition: url.h:62
bool remove_query_parameter(const std::string &key)
Definition: url.h:68
bool get_if_query_parameter(const std::string &key, std::optional< std::string > *value) const
Definition: url.h:79
std::string get_query()
Definition: url.h:64
static std::string get_query_parameter(const HttpUri &uri, const std::string &key)
Definition: url.h:100
bool get_if_query_parameter(const std::string &key, std::string *value) const
Definition: url.h:91
static void parse_offset_limit(const Parameters &query, uint64_t *out_offset, uint64_t *out_limit)
Definition: url.h:123
static uint64_t to_uint64(const char *value, const char *conversion_failure_message)
Definition: url.h:108
void parse_offset_limit(uint64_t *out_offset, uint64_t *out_limit) const
Definition: url.h:141
static void append_query_parameter(HttpUri &uri, const std::string &key, const std::string &value)
Definition: url.h:57
std::vector< std::string > Values
Definition: url.h:53
HttpUri::QueryElements Parameters
Definition: url.h:51
Parameters get_query_elements()
Definition: url.h:66
virtual std::string get_query() const
Definition: uri.cc:172
std::map< std::string, std::string > QueryElements
Definition: uri.h:42
virtual QueryElements & get_query_elements()
Definition: uri.cc:178
virtual std::string get_path() const
get path part of the URI.
Definition: uri.cc:160
static char * query
Definition: myisam_ftdump.cc:47
bool get_value(Container &container, const typename Container::key_type &key, typename Container::mapped_type *out)
Definition: map.h:46
constexpr key_type BadRequest
Definition: status_code.h:64
Request::Uri Uri
Definition: request.cc:36
Definition: connection.h:55
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
struct result result
Definition: result.h:34
required string key
Definition: replication_asynchronous_connection_failover.proto:60
uint32_t index
Definition: url.h:47
std::string name
Definition: url.h:48