2#ifndef BASE_CONNECTION_HPP_INCLUDED
3#define BASE_CONNECTION_HPP_INCLUDED
9#include "cpp_restapi_export.h"
20 explicit BaseConnection(
const std::string& address,
const std::map<std::string, std::string>& headerEntries);
23 const std::string&
url() const final;
26 std::expected<std::
string,
HttpError> fetch(const std::
string& request) final;
35 std::string
get(
const std::string &)
final;
51 const std::string m_address;
52 std::map<std::string, std::string> m_headerEntries;
base class with common parts for backend specific implementations
Definition base_connection.hpp:18
std::string get(const std::string &) final
perform a request to api
virtual void fetchAsync(const std::string &fullUrl, CancellationToken cancel, FetchCallback onSuccess, ErrorCallback onError)=0
BaseConnection(const std::string &address, const std::map< std::string, std::string > &headerEntries)
CancellationToken fetch(const std::string &request, IPaginationStrategy &strategy, BodyCallback onSuccess, ErrorCallback onError={}) final
Perform paginated requests asynchronously.
const std::string & url() const final
return API url
const std::map< std::string, std::string > & getHeaderEntries() const
const std::string & address() const
virtual Response fetchPage(const std::string &request)=0
Definition base_connection.hpp:13
std::shared_ptr< std::atomic< bool > > CancellationToken
Token returned by asynchronous fetch(); set it to true to cancel the request.
Definition iconnection.hpp:33
Represents an HTTP or network-level error.
Definition http_error.hpp:28
Interface representing connection with rest api server.
Definition iconnection.hpp:39
std::function< void(Response)> FetchCallback
Definition iconnection.hpp:42
std::function< void(HttpError)> ErrorCallback
Definition iconnection.hpp:44
std::function< void(std::string)> BodyCallback
Definition iconnection.hpp:43
HTTP response containing body, raw headers and the HTTP status code.
Definition iconnection.hpp:26