cpp Rest API master
C++ library for REST API access with Qt, Curl and cpp-httplib backends
 
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 <functional>
6#include <map>
7#include <memory>
8#include <utility>
9
11
12
14{
20 {
21 public:
23 : m_address("https://api.github.com")
24 {
25 }
26
28
36 ConnectionBuilder& setAddress(const std::string& address)
37 {
38 m_address = address;
39
40 return *this;
41 }
42
47 ConnectionBuilder& setToken(const std::string& token)
48 {
49 m_headerEntries.emplace("Authorization", "token " + token);
50
51 return *this;
52 }
53
65 template<typename Factory, typename... Args>
66 std::unique_ptr<IConnection> build(Factory&& factory, Args&&... args)
67 {
68 return std::invoke(std::forward<Factory>(factory),
69 std::forward<Args>(args)..., m_address, m_headerEntries);
70 }
71
72 private:
73 std::map<std::string, std::string> m_headerEntries;
74 std::string m_address;
75 };
76}
77
78#endif
Connection build for GitHub api.
Definition connection_builder.hpp:20
ConnectionBuilder(const ConnectionBuilder &)=delete
ConnectionBuilder & setToken(const std::string &token)
set token used for authorization
Definition connection_builder.hpp:47
std::unique_ptr< IConnection > build(Factory &&factory, Args &&... args)
build cpp_restapi::IConnection object using a factory function
Definition connection_builder.hpp:66
ConnectionBuilder & setAddress(const std::string &address)
change github api address.
Definition connection_builder.hpp:36
ConnectionBuilder()
Definition connection_builder.hpp:22
Definition connection_builder.hpp:14