mirror of
https://github.com/binary-kitchen/doorlockd
synced 2024-12-22 10:24:26 +01:00
Moved JSON parsing to main.cpp
This commit is contained in:
parent
60bbe3df76
commit
48565ef37e
@ -22,10 +22,10 @@ Logic::Logic(const chrono::seconds tokenTimeout,
|
||||
_logger(Logger::get()),
|
||||
_door(serDev),
|
||||
_tokenTimeout(tokenTimeout),
|
||||
_onTokenUpdate(onTokenUpdate),
|
||||
_ldapUri(ldapUri),
|
||||
_bindDN(bindDN),
|
||||
_webPrefix(webPrefix),
|
||||
_onTokenUpdate(onTokenUpdate)
|
||||
_webPrefix(webPrefix)
|
||||
{
|
||||
srand(time(NULL));
|
||||
_createNewToken(false);
|
||||
@ -52,24 +52,14 @@ Logic::~Logic()
|
||||
_tokenUpdater.join();
|
||||
}
|
||||
|
||||
Logic::Response Logic::parseRequest(const string &str)
|
||||
Logic::Response Logic::parseRequest(const Json::Value &root)
|
||||
{
|
||||
unique_lock<mutex> l(_mutex);
|
||||
|
||||
_logger(LogLevel::info, "Incoming request...");
|
||||
Json::Reader reader;
|
||||
Json::Value root;
|
||||
Response retval = Fail;
|
||||
string action, user, password, ip, token;
|
||||
|
||||
bool suc = reader.parse(str, root, false);
|
||||
if (!suc)
|
||||
{
|
||||
_logger(LogLevel::warning, "Request ist not valid JSON!");
|
||||
retval = NotJson;
|
||||
goto out;
|
||||
}
|
||||
|
||||
try {
|
||||
action = getJsonOrFail<string>(root, "action");
|
||||
ip = getJsonOrFail<string>(root, "ip");
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include <condition_variable>
|
||||
#include <mutex>
|
||||
|
||||
#include <json/json.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "door.h"
|
||||
#include "logger.h"
|
||||
@ -44,7 +46,7 @@ public:
|
||||
};
|
||||
|
||||
// Parse incoming JSON Requests
|
||||
Response parseRequest(const std::string &str);
|
||||
Response parseRequest(const Json::Value &root);
|
||||
|
||||
// Returns the current Token
|
||||
std::string getCurrentToken() const;
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include <boost/program_options.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
|
||||
#include <json/json.h>
|
||||
|
||||
#include "daemon.h"
|
||||
#include "config.h"
|
||||
#include "logic.h"
|
||||
@ -47,8 +49,19 @@ static void session(tcp::socket &&sock)
|
||||
else if (error)
|
||||
throw boost::system::system_error(error);
|
||||
|
||||
std::string request(data.begin(), data.begin()+length);
|
||||
const auto rc = logic->parseRequest(request);
|
||||
const std::string request(data.begin(), data.begin()+length);
|
||||
|
||||
Json::Reader reader;
|
||||
Json::Value root;
|
||||
Logic::Response rc = Logic::Response::Fail;
|
||||
|
||||
if (reader.parse(request, root, false))
|
||||
{
|
||||
l(LogLevel::warning, "Request ist not valid JSON!");
|
||||
} else {
|
||||
rc = logic->parseRequest(root);
|
||||
}
|
||||
|
||||
sock.write_some(boost::asio::buffer(std::to_string(rc) + "\n"),
|
||||
error);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user