diff options
Diffstat (limited to '')
-rw-r--r-- | src/web_service/web_backend.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/web_service/web_backend.h b/src/web_service/web_backend.h index 2753d3b68..a63c75d13 100644 --- a/src/web_service/web_backend.h +++ b/src/web_service/web_backend.h @@ -4,28 +4,36 @@ #pragma once +#include <functional> +#include <future> #include <string> #include "common/common_types.h" namespace WebService { /** - * Gets the current username for accessing services.citra-emu.org. - * @returns Username as a string, empty if not set. - */ -const std::string& GetUsername(); - -/** - * Gets the current token for accessing services.citra-emu.org. - * @returns Token as a string, empty if not set. + * Posts JSON to services.citra-emu.org. + * @param url URL of the services.citra-emu.org endpoint to post data to. + * @param data String of JSON data to use for the body of the POST request. + * @param allow_anonymous If true, allow anonymous unauthenticated requests. + * @param username Citra username to use for authentication. + * @param token Citra token to use for authentication. */ -const std::string& GetToken(); +void PostJson(const std::string& url, const std::string& data, bool allow_anonymous, + const std::string& username = {}, const std::string& token = {}); /** - * Posts JSON to services.citra-emu.org. + * Gets JSON from services.citra-emu.org. + * @param func A function that gets exectued when the json as a string is received * @param url URL of the services.citra-emu.org endpoint to post data to. - * @param data String of JSON data to use for the body of the POST request. + * @param allow_anonymous If true, allow anonymous unauthenticated requests. + * @param username Citra username to use for authentication. + * @param token Citra token to use for authentication. + * @return future that holds the return value T of the func */ -void PostJson(const std::string& url, const std::string& data); +template <typename T> +std::future<T> GetJson(std::function<T(const std::string&)> func, const std::string& url, + bool allow_anonymous, const std::string& username = {}, + const std::string& token = {}); } // namespace WebService |