cpp Rest API
Loading...
Searching...
No Matches
connection_builder.hpp
Go to the documentation of this file.
1
2#ifndef CONNECTION_BUILDER_HPP_INCLUDED
3#define CONNECTION_BUILDER_HPP_INCLUDED
4
5#include <map>
6#include <memory>
7
9
10
12{
18 {
19 public:
21 : m_address("https://api.github.com")
22 {
23 }
24
26
34 ConnectionBuilder& setAddress(const std::string& address)
35 {
36 m_address = address;
37
38 return *this;
39 }
40
45 ConnectionBuilder& setToken(const std::string& token)
46 {
47 m_headerEntries.emplace("Authorization", "token " + token);
48
49 return *this;
50 }
51
57 template<typename CT, typename... Args>
58 std::shared_ptr<IConnection> build(Args&&... args)
59 {
60 return std::make_shared<CT>(std::forward<Args>(args)..., m_address, m_headerEntries);
61 }
62
63 private:
64 std::map<std::string, std::string> m_headerEntries;
65 std::string m_address;
66 };
67}
68
69#endif
Connection build for GitHub api.
Definition connection_builder.hpp:18
ConnectionBuilder(const ConnectionBuilder &)=delete
ConnectionBuilder & setToken(const std::string &token)
set token used for authorization
Definition connection_builder.hpp:45
ConnectionBuilder & setAddress(const std::string &address)
change github api address.
Definition connection_builder.hpp:34
ConnectionBuilder()
Definition connection_builder.hpp:20
std::shared_ptr< IConnection > build(Args &&... args)
build cpp_restapi::IConnection object
Definition connection_builder.hpp:58
Definition connection_builder.hpp:12