aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDLL/scripts/scripthttprequesthandler.h
diff options
context:
space:
mode:
authorJack <66967891+ASpoonPlaysGames@users.noreply.github.com>2023-12-27 00:32:01 +0000
committerGitHub <noreply@github.com>2023-12-27 01:32:01 +0100
commitf5ab6fb5e8be7b73e6003d4145081d5e0c0ce287 (patch)
tree90f2c6a4885dbd181799e2325cf33588697674e1 /NorthstarDLL/scripts/scripthttprequesthandler.h
parentbb8ed59f6891b1196c5f5bbe7346cd171c8215fa (diff)
downloadNorthstarLauncher-f5ab6fb5e8be7b73e6003d4145081d5e0c0ce287.tar.gz
NorthstarLauncher-f5ab6fb5e8be7b73e6003d4145081d5e0c0ce287.zip
Folder restructuring from primedev (#624)v1.21.2-rc3v1.21.2
Copies of over the primedev folder structure for easier cherry-picking of further changes Co-authored-by: F1F7Y <filip.bartos07@proton.me>
Diffstat (limited to 'NorthstarDLL/scripts/scripthttprequesthandler.h')
-rw-r--r--NorthstarDLL/scripts/scripthttprequesthandler.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/NorthstarDLL/scripts/scripthttprequesthandler.h b/NorthstarDLL/scripts/scripthttprequesthandler.h
deleted file mode 100644
index f3921f4e..00000000
--- a/NorthstarDLL/scripts/scripthttprequesthandler.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-
-enum class ScriptContext;
-
-// These definitions below should match on the Squirrel side so we can easily pass them along through a function.
-
-/**
- * Allowed methods for an HttpRequest.
- */
-namespace HttpRequestMethod
-{
- enum Type
- {
- HRM_GET = 0,
- HRM_POST = 1,
- HRM_HEAD = 2,
- HRM_PUT = 3,
- HRM_DELETE = 4,
- HRM_PATCH = 5,
- HRM_OPTIONS = 6,
- };
-
- /** Returns the HTTP string representation of the given method. */
- inline std::string ToString(HttpRequestMethod::Type method)
- {
- switch (method)
- {
- case HttpRequestMethod::HRM_GET:
- return "GET";
- case HttpRequestMethod::HRM_POST:
- return "POST";
- case HttpRequestMethod::HRM_HEAD:
- return "HEAD";
- case HttpRequestMethod::HRM_PUT:
- return "PUT";
- case HttpRequestMethod::HRM_DELETE:
- return "DELETE";
- case HttpRequestMethod::HRM_PATCH:
- return "PATCH";
- case HttpRequestMethod::HRM_OPTIONS:
- return "OPTIONS";
- default:
- return "INVALID";
- }
- }
-
- /** Whether or not the given method should be treated like a POST for curlopts. */
- bool UsesCurlPostOptions(HttpRequestMethod::Type method)
- {
- switch (method)
- {
- case HttpRequestMethod::HRM_POST:
- case HttpRequestMethod::HRM_PUT:
- case HttpRequestMethod::HRM_DELETE:
- case HttpRequestMethod::HRM_PATCH:
- return true;
- default:
- return false;
- }
- }
-
- /** Whether or not the given http request method can have query parameters in the URL. */
- bool CanHaveQueryParameters(HttpRequestMethod::Type method)
- {
- return method == HttpRequestMethod::HRM_GET || UsesCurlPostOptions(method);
- }
-}; // namespace HttpRequestMethod
-
-/** Contains data about an http request that has been queued. */
-struct HttpRequest
-{
- /** Method used for this http request. */
- HttpRequestMethod::Type method;
-
- /** Base URL of this http request. */
- std::string baseUrl;
-
- /** Headers used for this http request. Some may get overridden or ignored. */
- std::unordered_map<std::string, std::vector<std::string>> headers;
-
- /** Query parameters for this http request. */
- std::unordered_map<std::string, std::vector<std::string>> queryParameters;
-
- /** The content type of this http request. Defaults to text/plain & UTF-8 charset. */
- std::string contentType = "text/plain; charset=utf-8";
-
- /** The body of this http request. If set, will override queryParameters.*/
- std::string body;
-
- /** The timeout for the http request, in seconds. Must be between 1 and 60. */
- int timeout;
-
- /** If set, the override to use for the User-Agent header. */
- std::string userAgent;
-};
-
-/**
- * Handles making HTTP requests and sending the responses back to Squirrel.
- */
-class HttpRequestHandler
-{
-public:
- HttpRequestHandler();
-
- // Start/Stop the HTTP request handler. Right now this doesn't do much.
- void StartHttpRequestHandler();
- void StopHttpRequestHandler();
-
- // Whether or not this http request handler is currently running.
- bool IsRunning() const
- {
- return m_bIsHttpRequestHandlerRunning;
- }
-
- /**
- * Creates a new thread to execute an HTTP request.
- * @param requestParameters The parameters to use for this http request.
- * @returns The handle for the http request being sent, or -1 if the request failed.
- */
- template <ScriptContext context> int MakeHttpRequest(const HttpRequest& requestParameters);
-
- /** Registers the HTTP request Squirrel functions for the given script context. */
- template <ScriptContext context> void RegisterSQFuncs();
-
-private:
- int m_iLastRequestHandle = 0;
- std::atomic_bool m_bIsHttpRequestHandlerRunning = false;
-};
-
-extern HttpRequestHandler* g_httpRequestHandler;