19 struct ISseConnection;
20 struct IPaginationStrategy;
53 virtual const std::string&
url()
const = 0;
66 virtual std::expected<std::string, HttpError>
fetch(
const std::string& request) = 0;
140 [[deprecated(
"Use fetch() or fetch() with IPaginationStrategy instead")]]
141 virtual std::string
get(
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
virtual std::expected< Response, HttpError > fetchResponse(const std::string &url)=0
Perform a single HTTP request returning the full response.
virtual const std::string & url() const =0
return API url
virtual std::expected< std::string, HttpError > fetch(const std::string &request, IPaginationStrategy &strategy)=0
Perform requests with automatic pagination.
virtual CancellationToken fetch(const std::string &request, IPaginationStrategy &strategy, BodyCallback onSuccess, ErrorCallback onError={})=0
Perform paginated requests asynchronously.
virtual std::string get(const std::string &request)=0
perform a request to api
virtual ~IConnection()=default
std::function< void(HttpError)> ErrorCallback
Definition iconnection.hpp:44
std::function< void(std::string)> BodyCallback
Definition iconnection.hpp:43
virtual std::unique_ptr< ISseConnection > subscribe(const std::string &request, EventCallback callback)=0
Subscribe to an SSE endpoint.
std::function< void(const SseEvent &)> EventCallback
Definition iconnection.hpp:41
virtual std::expected< std::string, HttpError > fetch(const std::string &request)=0
Perform a single HTTP request.
virtual CancellationToken fetch(const std::string &request, FetchCallback onSuccess, ErrorCallback onError={})=0
Perform an HTTP GET request asynchronously.
HTTP response containing body, raw headers and the HTTP status code.
Definition iconnection.hpp:26
std::string headers
Definition iconnection.hpp:28
std::string body
Definition iconnection.hpp:27
int statusCode
HTTP status code (e.g. 200, 404). 0 means no response was received (network error).
Definition iconnection.hpp:29
Represents a single Server-Sent Event.
Definition sse_event.hpp:15