26#ifndef ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_ENDPOINT_HANDLER_URL_PATHS_H_
27#define ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_ENDPOINT_HANDLER_URL_PATHS_H_
41 "(/([0-9]|[a-z]|[A-Z]|[-._~!$&'()*+,;=:@%]| )*/?)?";
46 const std::string &service_schema_path) {
47 using namespace std::string_literals;
52 std::string obj_name) {
53 using namespace std::string_literals;
57 if (!obj_name.empty()) {
58 if (obj_name[0] ==
'/') obj_name.erase(obj_name.begin());
60 result.get_path_elements().push_back(obj_name);
71 const std::string &service_schema_path,
const std::string &obj_name) {
72 const std::string k_metadata_catalog =
"/metadata-catalog";
73 using namespace std::string_literals;
74 return "^"s + service_schema_path + k_metadata_catalog + obj_name +
"/?$"s;
78 using namespace std::string_literals;
79 return "^"s + service_path +
"/"s +
k_debug +
"/?$"s;
83 const std::string &service_path) {
84 using namespace std::string_literals;
85 return "^"s + service_path +
"/"s +
k_metadata +
"/?$"s;
89 const std::string &service_schema_path) {
90 using namespace std::string_literals;
91 return "^"s + service_schema_path +
"/"s +
k_metadata +
"/?$"s;
95 const std::string &service_schema_path,
const std::string &obj_name) {
96 using namespace std::string_literals;
97 return "^"s + service_schema_path + obj_name +
"/"s +
k_metadata +
"/?$"s;
101 const std::string &service_schema_path,
const std::string &obj_name) {
102 const std::string k_openapi_catalog =
"/open-api-catalog";
103 using namespace std::string_literals;
104 return "^"s + service_schema_path + k_openapi_catalog + obj_name +
"/?$"s;
108 const std::string &service_schema_path) {
109 const std::string k_openapi_catalog =
"/open-api-catalog";
110 using namespace std::string_literals;
111 return "^"s + service_schema_path + k_openapi_catalog +
"/?$"s;
115 const std::string &service_name,
const std::string &schema_name) {
116 const std::string k_openapi_catalog =
"/open-api-catalog";
117 using namespace std::string_literals;
118 return "^/"s + service_name + k_openapi_catalog +
"/" + schema_name +
"/?$"s;
122 const std::string &service_path) {
123 const std::string k_openapi_catalog =
"/open-api-catalog";
124 using namespace std::string_literals;
125 return "^"s + service_path + k_openapi_catalog +
"/?$"s;
129 using namespace std::string_literals;
134 const std::string &object_path,
const std::string &service_schema_path,
135 const bool is_index) {
136 using namespace std::string_literals;
143 if (service_schema_path.empty())
144 result.push_back(
"^"s + service_schema_path +
"$"s);
146 result.push_back(
"^"s + service_schema_path +
"/$"s);
153 const std::string &object_path,
155 using namespace std::string_literals;
156 std::vector<std::string>
result{
157 {
"^"s + service_schema_path + object_path +
"$"s}};
162 if (service_schema_path.empty())
163 result.push_back(
"^"s + service_schema_path +
"$"s);
165 result.push_back(
"^"s + service_schema_path +
"/$"s);
172 if (
path.empty())
return {};
173 if (
path[0] ==
'/')
return path.substr(1);
178 const std::string &service_schema_path) {
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4618
static char * path
Definition: mysqldump.cc:150
bool ends_with(const std::string &value, const std::string &sst)
Definition: contains.h:66
Request::Uri Uri
Definition: request.cc:36
std::string regex_path_object_metadata(const std::string &service_schema_path, const std::string &obj_name)
Definition: url_paths.h:94
std::string regex_path_schema_openapi_swagger(const std::string &service_schema_path)
Definition: url_paths.h:107
std::string url_sch_metadata_catalog(const ::http::base::Uri &uri)
Definition: url_paths.h:64
const std::string k_path_id_or_query
Definition: url_paths.h:40
std::string regex_path_schema_catalog(const std::string &service_schema_path)
Definition: url_paths.h:45
std::string regex_path_obj_openapi_swagger(const std::string &service_schema_path, const std::string &obj_name)
Definition: url_paths.h:100
std::vector< std::string > regex_path_content_file(const std::string &service_schema_path)
Definition: url_paths.h:177
std::string regex_path_service_debug(const std::string &service_path)
Definition: url_paths.h:77
std::string regex_path_db_object(const std::string &object_path)
Definition: url_paths.h:128
const std::string k_path_metadata_catalog
Definition: url_paths.h:39
std::string regex_path_service_metadata(const std::string &service_path)
Definition: url_paths.h:82
std::string regex_path_obj_metadata_catalog(const std::string &service_schema_path, const std::string &obj_name)
Definition: url_paths.h:70
std::string url_obj_metadata_catalog(const ::http::base::Uri &uri, std::string obj_name)
Definition: url_paths.h:51
std::vector< std::string > regex_path_db_object_with_index(const std::string &object_path, const std::string &service_schema_path, const bool is_index)
Definition: url_paths.h:133
const std::string k_debug
Definition: url_paths.h:43
std::vector< std::string > regex_path_file(std::string service_schema_path, const std::string &object_path, bool is_index)
Definition: url_paths.h:152
std::string regex_path_schema_metadata(const std::string &service_schema_path)
Definition: url_paths.h:88
const std::string k_metadata
Definition: url_paths.h:42
std::string regex_path_schema_openapi_swagger_alias(const std::string &service_name, const std::string &schema_name)
Definition: url_paths.h:114
std::string remove_leading_slash_from_path(const std::string &path)
Definition: url_paths.h:171
std::string regex_path_service_openapi_swagger(const std::string &service_path)
Definition: url_paths.h:121
Definition: authorize_manager.h:48
struct result result
Definition: result.h:34