added get_ssh_server and set_ssh_server

This commit is contained in:
wt committed 2024-12-28 01:05:01 +07:00
1 parent f7b1d75bab
commit 5a1a3a92a2
10 files changed
+133 -3

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
#include <settings/ssh/ssh.hpp>
#include <fstream>
#include <json.hpp>
#include <colors.h>
#include <helpers.hpp>
#include <types.hpp>
#include <auth/auth.hpp>
#define SSH_SERVER_REQUIRED_STRING R"({"required":"[token,server]"})"
namespace api
{
namespace settings
{
std::string get_ssh_server()
{
std::ifstream serverfile("/etc/openrouter/ssh/server");
std::string ssh_server = "";
serverfile >> ssh_server;
serverfile.close();
return ssh_server;
}
std::string set_ssh_server(std::string &server)
{
std::ofstream serverfile("/etc/openrouter/ssh/server");
serverfile << server;
serverfile.close();
return get_ssh_server();
}
void get_ssh_server_http(const httplib::Request &request, httplib::Response &response)
{
std::cout << GREEN << request.path << RESET << " " << request.method << std::endl;
response.set_header("Access-Control-Allow-Origin", "*");
if (!check_body(request))
{
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (!authenticate(json_body["token"]))
{
response.set_content(R"({"access":"reject"})", JSON_TYPE);
return;
}
std::stringstream responsedata;
responsedata << R"({"server":")" << get_ssh_server() << R"("})";
response.set_content(responsedata.str(), JSON_TYPE);
}
void set_ssh_server_http(const httplib::Request &request, httplib::Response &response)
{
std::cout << GREEN << request.path << RESET << " " << request.method << std::endl;
response.set_header("Access-Control-Allow-Origin", "*");
if (!check_body(request))
{
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (json_body["server"] == nullptr)
{
response.set_content(SSH_SERVER_REQUIRED_STRING, JSON_TYPE);
return;
}
if (!authenticate(json_body["token"]))
{
response.set_content(R"({"access":"reject"})", JSON_TYPE);
return;
}
std::stringstream responsedata;
std::string server = json_body["server"];
responsedata << R"({"server":")" << set_ssh_server(server) << R"("})";
response.set_content(responsedata.str(), JSON_TYPE);
}
}
}
+6
View File
@@ -7,6 +7,12 @@ namespace api
{
namespace settings
{
std::string get_ssh_server();
std::string set_ssh_server(std::string &server);
void get_ssh_server_http(const httplib::Request &request, httplib::Response &response);
void set_ssh_server_http(const httplib::Request &request, httplib::Response &response);
void get_ssh_status(const httplib::Request &request, httplib::Response &response);
void set_ssh_status(const httplib::Request &request, httplib::Response &response);