2#ifndef CONNECTION_BUILDER_HPP_INCLUDED
3#define CONNECTION_BUILDER_HPP_INCLUDED
22 : m_address(
"https://api.github.com")
48 m_headerEntries.emplace(
"Authorization",
"token " + token);
64 template<
typename Factory,
typename... Args>
65 std::unique_ptr<IConnection>
build(Factory&& factory, Args&&... args)
67 return std::invoke(std::forward<Factory>(factory),
68 std::forward<Args>(args)..., m_address, m_headerEntries);
77 template<
typename CT,
typename... Args>
78 [[deprecated(
"Use build(factory, args...) with a factory function instead")]]
79 std::shared_ptr<IConnection>
build(Args&&... args)
81 return std::make_shared<CT>(std::forward<Args>(args)..., m_address, m_headerEntries);
85 std::map<std::string, std::string> m_headerEntries;
86 std::string m_address;
Connection build for GitHub api.
Definition connection_builder.hpp:19
ConnectionBuilder(const ConnectionBuilder &)=delete
ConnectionBuilder & setToken(const std::string &token)
set token used for authorization
Definition connection_builder.hpp:46
std::unique_ptr< IConnection > build(Factory &&factory, Args &&... args)
build cpp_restapi::IConnection object using a factory function
Definition connection_builder.hpp:65
ConnectionBuilder & setAddress(const std::string &address)
change github api address.
Definition connection_builder.hpp:35
ConnectionBuilder()
Definition connection_builder.hpp:21
std::shared_ptr< IConnection > build(Args &&... args)
build cpp_restapi::IConnection object
Definition connection_builder.hpp:79
Definition connection_builder.hpp:13