diff options
author | bunnei <bunneidev@gmail.com> | 2017-06-28 05:18:52 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2017-07-12 00:33:25 +0200 |
commit | a634efa40e988d86ae21d86ab1a93e062614fd0b (patch) | |
tree | ea3b5d77f869b8f5f59567cb5949057f17467502 /src/web_service/web_backend.cpp | |
parent | web_service: Add skeleton project. (diff) | |
download | yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar.gz yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar.bz2 yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar.lz yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar.xz yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.tar.zst yuzu-a634efa40e988d86ae21d86ab1a93e062614fd0b.zip |
Diffstat (limited to 'src/web_service/web_backend.cpp')
-rw-r--r-- | src/web_service/web_backend.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp index c7bd8a38a..6d5470157 100644 --- a/src/web_service/web_backend.cpp +++ b/src/web_service/web_backend.cpp @@ -2,8 +2,49 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <cpr/cpr.h> +#include <stdlib.h> +#include "common/logging/log.h" #include "web_service/web_backend.h" namespace WebService { +static constexpr char ENV_VAR_USERNAME[]{"CITRA_WEB_SERVICES_USERNAME"}; +static constexpr char ENV_VAR_TOKEN[]{"CITRA_WEB_SERVICES_TOKEN"}; + +static std::string GetEnvironmentVariable(const char* name) { + const char* value{getenv(name)}; + if (value) { + return value; + } + return {}; +} + +const std::string& GetUsername() { + static const std::string username{GetEnvironmentVariable(ENV_VAR_USERNAME)}; + return username; +} + +const std::string& GetToken() { + static const std::string token{GetEnvironmentVariable(ENV_VAR_TOKEN)}; + return token; +} + +void PostJson(const std::string& url, const std::string& data) { + if (url.empty()) { + LOG_ERROR(WebService, "URL is invalid"); + return; + } + + if (GetUsername().empty() || GetToken().empty()) { + LOG_ERROR(WebService, "Environment variables %s and %s must be set to POST JSON", + ENV_VAR_USERNAME, ENV_VAR_TOKEN); + return; + } + + cpr::PostAsync(cpr::Url{url}, cpr::Body{data}, cpr::Header{{"Content-Type", "application/json"}, + {"x-username", GetUsername()}, + {"x-token", GetToken()}}); +} + } // namespace WebService |