#pragma once

#include <memory>

#include <string>

class Request : public std::enable_shared_from_this<Request> {
public:
	using Ptr = std::shared_ptr<Request>;

public:
	~Request();

	static Ptr Create();

	void Check();

	bool Post(const std::string& url, const std::string& body, const std::string& contentType = "application/json");

	const std::string GetResponseBody() const { return m_responseBody; }
	bool IsSuccess() const { return m_success; }

protected:
	Request() noexcept;

private:
	std::string m_responseBody;
	bool m_success = false;
};