diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 66801a5..b775f23 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -16,53 +16,69 @@ #define SCLISTDELIM QString("::::") //SysCache List Delimiter void WebSocket::EvaluateBackendRequest(QString name, const QJsonValue args, QJsonObject *out){ - QJsonObject obj; //output object - if(args.isObject()){ - //For the moment: all arguments are full syscache DB calls - no special ones - QStringList reqs = args.toObject().keys(); - if(!reqs.isEmpty()){ - if(DEBUG){ qDebug() << "Parsing Inputs:" << reqs; } - for(int r=0; rinsert(req, QJsonValue(values.join("")) ); } - else{ - //This is an array of outputs - QJsonArray arr; - for(int i=0; iinsert(req,arr); - } - } - } //end of special "request" objects - }else if(args.isArray()){ - QStringList inputs = JsonArrayToStringList(args.toArray()); - if(DEBUG){ qDebug() << "Parsing Array inputs:" << inputs; } - QStringList values; - if(name.toLower()=="syscache"){values = SysCacheClient::parseInputs( inputs ); } - else if(name.toLower()=="dispatcher"){values = DispatcherClient::parseInputs( inputs , AUTHSYSTEM); } - if(DEBUG){ qDebug() << " - Returns:" << values; } - for(int i=0; iinsert(inputs[i],arr); + out->insert(in_req[i],arr); }else{ - out->insert(inputs[i],values[i]); + out->insert(in_req[i],values[i]); } } - } //end array of inputs - -} \ No newline at end of file + //Return Success + return RestOutputStruct::OK; +} + +RestOutputStruct::ExitCode WebSocket::EvaluateDispatcherRequest(const QJsonValue in_args, QJSonObject *out){ + //dispatcher only needs a list of sub-commands at the moment (might change later) + QStringList in_req; + + //Parse the input arguments structure + if(args.isArray()){ in_req = JsonArrayToStringList(args.toArray()); } + else if(args.isObject()){ + QStringList keys = arg.toObject().keys(); + for(int i=0; iinsert(in_req[i],values[i]); } + //Return Success + return RestOutputStruct::OK; +} + diff --git a/src/server/WebSocket.h b/src/server/WebSocket.h index 5f37f83..1f90321 100644 --- a/src/server/WebSocket.h +++ b/src/server/WebSocket.h @@ -45,7 +45,9 @@ private: void SetOutputError(QJsonObject *ret, QString id, int err, QString msg); //Backend request/reply functions (contained in WebBackend.cpp) - void EvaluateBackendRequest(QString name, const QJsonValue in_args, QJsonObject *out); + RestOutputStruct::ExitCode EvaluateBackendRequest(QString name, const QJsonValue in_args, QJsonObject *out); + RestOutputStruct::ExitCode EvaluateSyscacheRequest(const QJsonValue in_args, QJsonObject *out); + RestOutputStruct::ExitCode EvaluateDispatcherRequest(const QJsonValue in_args, QJsonObject *out); private slots: void checkIdle(); //see if the currently-connected client is idle