change json to pointer

This commit is contained in:
Dario 2019-10-22 15:14:43 +02:00
parent d922b31257
commit 5e17083fa6
7 changed files with 36 additions and 32 deletions

View File

@ -3,11 +3,11 @@
#include "../SingletonManager/SessionManager.h"
Poco::JSON::Object JsonGetLogin::handle(Poco::Dynamic::Var params)
Poco::JSON::Object* JsonGetLogin::handle(Poco::Dynamic::Var params)
{
int session_id = 0;
Poco::JSON::Object result;
Poco::JSON::Object* result = new Poco::JSON::Object;
if (params.isStruct()) {
session_id = params["session_id"];
//std::string miau = params["miau"];
@ -24,28 +24,28 @@ Poco::JSON::Object JsonGetLogin::handle(Poco::Dynamic::Var params)
//auto var = params[0];
}
catch (const std::invalid_argument& ia) {
result.set("state", "error");
result.set("msg", "error parsing query params, invalid argument: ");
result.set("details", ia.what());
result->set("state", "error");
result->set("msg", "error parsing query params, invalid argument: ");
result->set("details", ia.what());
return result;
}
catch (const std::out_of_range& oor) {
result.set("state", "error");
result.set("msg", "error parsing query params, Out of Range error: ");
result.set("details", oor.what());
result->set("state", "error");
result->set("msg", "error parsing query params, Out of Range error: ");
result->set("details", oor.what());
return result;
}
catch (const std::logic_error & ler) {
result.set("state", "error");
result.set("msg", "error parsing query params, Logical error: ");
result.set("details", ler.what());
result->set("state", "error");
result->set("msg", "error parsing query params, Logical error: ");
result->set("details", ler.what());
return result;
}
catch (Poco::Exception& ex) {
//printf("[JsonGetLogin::handle] exception: %s\n", ex.displayText().data());
result.set("state", "error");
result.set("msg", "error parsing query params, Poco Error");
result.set("details", ex.displayText());
result->set("state", "error");
result->set("msg", "error parsing query params, Poco Error");
result->set("details", ex.displayText());
return result;
}
}
@ -56,25 +56,25 @@ Poco::JSON::Object JsonGetLogin::handle(Poco::Dynamic::Var params)
if (session) {
auto user = session->getUser();
if (!user) {
result.set("state", "not found");
result.set("msg", "Session didn't contain user");
result->set("state", "not found");
result->set("msg", "Session didn't contain user");
return result;
}
result.set("state", "success");
result.set("clientIP", session->getClientIp());
result.set("user", user->getJson());
result->set("state", "success");
result->set("clientIP", session->getClientIp());
result->set("user", user->getJson());
return result;
}
else {
result.set("state", "not found");
result.set("msg", "Session not found");
result->set("state", "not found");
result->set("msg", "Session not found");
return result;
}
}
else {
result.set("state", "error");
result.set("msg", "empty session id");
result->set("state", "error");
result->set("msg", "empty session id");
}
return result;

View File

@ -6,7 +6,7 @@
class JsonGetLogin : public JsonRequestHandler
{
public:
Poco::JSON::Object handle(Poco::Dynamic::Var params);
Poco::JSON::Object* handle(Poco::Dynamic::Var params);
protected:

View File

@ -24,7 +24,7 @@ void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Po
auto method = request.getMethod();
std::istream& request_stream = request.stream();
Poco::JSON::Object json_result;
Poco::JSON::Object* json_result = nullptr;
if (method == "POST") {
// extract parameter from request
Poco::JSON::Parser jsonParser;
@ -42,7 +42,10 @@ void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Po
auto queryParameters = uri.getQueryParameters();
json_result = handle(queryParameters);
}
json_result.stringify(responseStream);
if (json_result) {
json_result->stringify(responseStream);
delete json_result;
}
if (_compressResponse) _gzipStream.close();
}

View File

@ -9,7 +9,7 @@ class JsonRequestHandler : public Poco::Net::HTTPRequestHandler
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
virtual Poco::JSON::Object handle(Poco::Dynamic::Var params) = 0;
virtual Poco::JSON::Object* handle(Poco::Dynamic::Var params) = 0;
protected:

View File

@ -1,11 +1,11 @@
#include "JsonUnknown.h"
Poco::JSON::Object JsonUnknown::handle(Poco::Dynamic::Var params)
Poco::JSON::Object* JsonUnknown::handle(Poco::Dynamic::Var params)
{
Poco::JSON::Object result;
Poco::JSON::Object* result = new Poco::JSON::Object;
result.set("state", "error");
result.set("msg", "unknown call");
result->set("state", "error");
result->set("msg", "unknown call");
return result;
}

View File

@ -6,7 +6,7 @@
class JsonUnknown : public JsonRequestHandler
{
public:
Poco::JSON::Object handle(Poco::Dynamic::Var params);
Poco::JSON::Object* handle(Poco::Dynamic::Var params);
protected:

View File

@ -365,6 +365,7 @@ Poco::JSON::Object User::getJson()
{
lock();
Poco::JSON::Object userObj;
userObj.set("first_name", mFirstName);
userObj.set("last_name", mLastName);
userObj.set("email", mEmail);