From 52fbe1e10cffcfd4c4ee1c50b7c8e98f3eb4cb50 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 27 Jun 2017 23:01:49 -0400 Subject: web_service: Add skeleton project. --- src/web_service/web_backend.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/web_service/web_backend.cpp (limited to 'src/web_service/web_backend.cpp') diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp new file mode 100644 index 000000000..c7bd8a38a --- /dev/null +++ b/src/web_service/web_backend.cpp @@ -0,0 +1,9 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "web_service/web_backend.h" + +namespace WebService { + +} // namespace WebService -- cgit v1.2.3 From a634efa40e988d86ae21d86ab1a93e062614fd0b Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 27 Jun 2017 23:18:52 -0400 Subject: web_backend: Add initial interface to POST data to Citra Web Services. --- src/web_service/web_backend.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/web_service/web_backend.cpp') 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 +#include +#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 -- cgit v1.2.3 From 28c35756790bfad06e339b82c551ab521268561b Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 9 Jul 2017 18:37:14 -0400 Subject: web_backend: Specify api-version on JSON post. --- src/web_service/web_backend.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/web_service/web_backend.cpp') diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp index 6d5470157..13e4555ac 100644 --- a/src/web_service/web_backend.cpp +++ b/src/web_service/web_backend.cpp @@ -9,6 +9,7 @@ namespace WebService { +static constexpr char API_VERSION[]{"1"}; static constexpr char ENV_VAR_USERNAME[]{"CITRA_WEB_SERVICES_USERNAME"}; static constexpr char ENV_VAR_TOKEN[]{"CITRA_WEB_SERVICES_TOKEN"}; @@ -44,7 +45,8 @@ void PostJson(const std::string& url, const std::string& data) { cpr::PostAsync(cpr::Url{url}, cpr::Body{data}, cpr::Header{{"Content-Type", "application/json"}, {"x-username", GetUsername()}, - {"x-token", GetToken()}}); + {"x-token", GetToken()}, + {"api-version", API_VERSION}}); } } // namespace WebService -- cgit v1.2.3