blob: 7b896b98d16c9e5ca7a7fd687cbb6a9ad54456dd [file]
#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_REQUEST_RESPONSE_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_REQUEST_RESPONSE_H_
#include <string>
#include <utility>
#include "redfish_query_engine/http/client.h"
namespace milotic {
struct ProxyRequest : public ecclesia::HttpClient::HttpRequest {
ProxyRequest() = default;
explicit ProxyRequest(ecclesia::HttpClient::HttpRequest request)
: ecclesia::HttpClient::HttpRequest{
.uri = std::move(request.uri),
.unix_socket_path = std::move(request.unix_socket_path),
.body = std::move(request.body),
.headers = std::move(request.headers)} {}
ProxyRequest(std::string uri_, std::string unix_socket_path_,
std::string body_, ecclesia::HttpClient::HttpHeaders headers_)
: ecclesia::HttpClient::HttpRequest{
.uri = std::move(uri_),
.unix_socket_path = std::move(unix_socket_path_),
.body = std::move(body_),
.headers = std::move(headers_)} {}
explicit ProxyRequest(std::string uri_)
: ecclesia::HttpClient::HttpRequest{.uri = std::move(uri_)} {}
};
struct ProxyResponse : public ecclesia::HttpClient::HttpResponse {
ProxyResponse() = default;
explicit ProxyResponse(ecclesia::HttpClient::HttpResponse response)
: ecclesia::HttpClient::HttpResponse{
.code = response.code,
.body = std::move(response.body),
.headers = std::move(response.headers)} {}
ProxyResponse(int code_, std::string body_,
ecclesia::HttpClient::HttpHeaders headers_)
: ecclesia::HttpClient::HttpResponse{.code = code_,
.body = std::move(body_),
.headers = std::move(headers_)} {}
ProxyResponse(int code_, std::string body_)
: ecclesia::HttpClient::HttpResponse{.code = code_,
.body = std::move(body_)} {}
ProxyResponse(int code_, ecclesia::HttpClient::HttpHeaders headers_)
: ecclesia::HttpClient::HttpResponse{.code = code_,
.headers = std::move(headers_)} {}
ProxyResponse(std::string body_, ecclesia::HttpClient::HttpHeaders headers_)
: ecclesia::HttpClient::HttpResponse{.body = std::move(body_),
.headers = std::move(headers_)} {}
explicit ProxyResponse(int code_)
: ecclesia::HttpClient::HttpResponse{.code = code_} {}
explicit ProxyResponse(std::string body_)
: ecclesia::HttpClient::HttpResponse{.body = std::move(body_)} {}
explicit ProxyResponse(ecclesia::HttpClient::HttpHeaders headers_)
: ecclesia::HttpClient::HttpResponse{.headers = std::move(headers_)} {}
};
} // namespace milotic
#endif // THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_REQUEST_RESPONSE_H_