10Duke Scale C++ Client
Loading...
Searching...
No Matches
URLBuilder.h
1#ifndef TENDUKE_NET_URLBUILDER_H
2#define TENDUKE_NET_URLBUILDER_H
3
4#include "./URLEncoder.h"
5
6#include <map>
7#include <memory>
8#include <string>
9#include <utility>
10#include <vector>
11
12namespace tenduke { namespace net {
13
19{
20public:
25 explicit URLBuilder(std::shared_ptr<const tenduke::net::URLEncoder> urlEncoder);
26
28 std::string buildString();
29
35 URLBuilder & baseURL(const std::string &url);
36
44 URLBuilder & queryParameter(const std::string &name, const std::string &value = "");
45
52 URLBuilder & queryParameters(const std::map<std::string, std::string> &pParameters);
53
61 URLBuilder & queryParameterUnencoded(const std::string &name, const std::string &value ="");
62
68 std::string pctEncode(const std::string &value);
69
70private:
71 void putParameter(
72 const std::string &name,
73 const std::string &value
74 );
75
76private:
77 const std::shared_ptr<const tenduke::net::URLEncoder> urlEncoder;
78
79 std::string baseUrl;
80 std::vector<std::pair<std::string, std::string>> parameters;
81};
82
83}}
84
85#endif // TENDUKE_NET_URLBUILDER_H
Very simple URL-builder.
Definition URLBuilder.h:19
std::string buildString()
Builds to URL into a string.
Definition URLBuilder.cpp:10
URLBuilder & queryParameters(const std::map< std::string, std::string > &pParameters)
Sets multiple query parameters.
Definition URLBuilder.cpp:51
URLBuilder & baseURL(const std::string &url)
Sets the base URL.
Definition URLBuilder.cpp:36
URLBuilder & queryParameter(const std::string &name, const std::string &value="")
Adds an encoded query parameter.
Definition URLBuilder.cpp:42
URLBuilder & queryParameterUnencoded(const std::string &name, const std::string &value="")
Adds an unencoded query parameter.
Definition URLBuilder.cpp:59
std::string pctEncode(const std::string &value)
PCT-encodes given string.
Definition URLBuilder.cpp:68
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7