1#ifndef TENDUKE_SE_STATEFULAPIREQUEST_H
2#define TENDUKE_SE_STATEFULAPIREQUEST_H
4#include "./APIRequest.h"
5#include "http/Unauthorized.h"
7#include "oidc/session/OIDCSession.h"
36 const std::shared_ptr<::tenduke::oidc::OIDCSession> &oidc
46 if (oidc ==
nullptr) {
47 return request->execute();
53 oidc->ensureValidSession();
58 R response = request->execute();
72 ::tenduke::log::info(
"StatefulAPIRequest::execute() ... OIDC session re-established. Re-executing original request ...");
73 R response = request->execute();
82 const std::shared_ptr<::tenduke::se::APIRequest<R>> request;
83 const std::shared_ptr<::tenduke::oidc::OIDCSession>
oidc;
StatefulAPIRequest(const std::shared_ptr<::tenduke::se::APIRequest< R > > &request, const std::shared_ptr<::tenduke::oidc::OIDCSession > &oidc)
Constructs new instance.
Definition StatefulAPIRequest.h:34
Interface for 10Duke Scale API-requests.
Definition APIRequest.h:12
StatefulAPIRequest(const std::shared_ptr<::tenduke::se::APIRequest< R > > &request, const std::shared_ptr<::tenduke::oidc::OIDCSession > &oidc)
Constructs new instance.
Definition StatefulAPIRequest.h:34
R execute() override
Execute the request synchronously.
Definition StatefulAPIRequest.h:42
Thrown when 10Duke Scale backend responds with HTTP 401.
Definition Unauthorized.h:12
void debug(const char *message)
Write message to global logger at DEBUG-level.
Definition log.cpp:54
void warning(const char *message)
Write message to global logger at WARNING-level.
Definition log.cpp:94
void info(const char *message)
Write message to global logger at INFO-level.
Definition log.cpp:74
Implementation of OpenID Connect protocol.
Definition AutoDiscovery.h:18
Classes, functions and globals of 10Duke Scale C++ Client.
Definition AbstractClientFactory.h:16
Root for classes, functions and globals of 10Duke C++ Client.
Definition AbstractClientFactory.h:16