summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-01-02 16:37:36 -0500
committerScott Murray <scott.murray@konsulko.com>2020-01-02 16:37:36 -0500
commit77392aeda562e3bbb4f311a99469156cb1a66d75 (patch)
treefb07f03a1d246dca179fc7ed8d44c9a8853b7334
parentb9696a362febf1f8b660fe37e89b6dc2ac5459c6 (diff)
voice: remove workarounds for broken vshl-core event JSON
Now that the broken event argument JSON from the vshl-core binding has a fix, the workaround of selectively reparsing the voice event arguments needs to be removed, as it breaks with the corrected events. Bug-AGL: SPEC-3084 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ie158ae326a3dc9c7cf4b08dbdbc729f5587e3758
-rw-r--r--voice/voice.cpp22
-rw-r--r--voice/voicemessage.cpp86
-rw-r--r--voice/voicemessage.h1
3 files changed, 7 insertions, 102 deletions
diff --git a/voice/voice.cpp b/voice/voice.cpp
index 40349d1..c43e0b5 100644
--- a/voice/voice.cpp
+++ b/voice/voice.cpp
@@ -55,7 +55,7 @@ void Voice::scan()
void Voice::getCBLpair(QString id)
{
- triggerCBLProcess(id);
+ triggerCBLProcess(id);
}
void Voice::subscribeAgentToVshlEvents(QString id)
@@ -138,23 +138,15 @@ void Voice::processEvent(VoiceMessage *vmsg)
return;
}
else if (vmsg->isCblEvent()) {
- auto payload_iter = data.find("payload");
- if (payload_iter == data.end())
- qWarning() << "no top-level payload field in event";
- auto payload_stringval = payload_iter.value().toString();
- if (!payload_stringval.isEmpty())
- payload_stringval.remove('\n');
- QJsonDocument infodoc = QJsonDocument::fromJson(payload_stringval.toUtf8());
- QJsonObject info = infodoc.object();
- QJsonObject properties = info.value("payload").toObject();
- QString url = properties.value("url").toString();
- QString code = properties.value("code").toString();
+ QJsonObject payload = data.value("payload").toObject();
+ QString url = payload.value("url").toString();
+ QString code = payload.value("code").toString();
if (str.contains("expired"))
m_var->updateLoginData(agentId, code, url, true);
else if (str.contains("received")) {
m_var->updateLoginData(agentId, code, url, false);
} else
- qWarning() << "unknown cbl event";
+ qWarning() << "Unknown cbl event";
return;
}
@@ -170,8 +162,8 @@ void Voice::processReply(ResponseMessage *rmsg)
m_var->setDefaultId(
rmsg->replyData().value("default").toString());
} else
- qWarning() << "discarding reply received for verb:" <<
- rmsg->requestVerb();
+ qDebug() << "discarding reply received for verb:" <<
+ rmsg->requestVerb();
}
void Voice::onConnected()
diff --git a/voice/voicemessage.cpp b/voice/voicemessage.cpp
index 493b04e..6e5c634 100644
--- a/voice/voicemessage.cpp
+++ b/voice/voicemessage.cpp
@@ -27,89 +27,3 @@ bool VoiceMessage::createRequest(QString verb, QJsonObject parameter)
return false;
return Message::createRequest("vshl-core", verb, parameter);
}
-
-bool VoiceMessage::fromJDoc(QJsonDocument jdoc)
-{
- // Validate message is array
- if (!jdoc.isArray()) {
- qWarning("Invalid appfw message: not an array");
- return false;
- }
- QJsonArray msg = jdoc.array();
-
- // Validate array is proper length
- if ((msg.size() < 3) || (msg.size() > 4)) {
- qWarning("Invalid appfw message: invalid array size");
- return false;
- }
-
- // Validate msgid type
- double msgid;
- if (msg[0].isDouble()) {
- msgid = msg[0].toDouble();
- } else {
- qWarning("Invalid appfw message: invalid msgid type");
- return false;
- }
-
- // Validate msgid element
- if ((msgid < Call) || (msgid > Event)) {
- qWarning("Invalid appfw message: msgid out of range");
- return false;
- }
-
- // Validate that the payload has a request object
- QJsonObject payload;
- if (msg[2].isObject()) {
- payload = msg[2].toObject();
- } else {
- qWarning("Invalid appfw payload: no JSON object");
- return false;
- }
-
- if ((msgid == RetOk) || (msgid == RetErr)) {
- auto request_iter = payload.find("request");
- auto request = request_iter.value().toObject();
- if (request.empty()) {
- qWarning("Invalid appfw reply message: empty request data");
- return false;
- }
- auto status_iter = request.find("status");
- auto info_iter = request.find("info");
- auto response_iter = payload.find("response");
- auto response = response_iter.value().toObject();
- m_reply_status = status_iter.value().toString();
- m_reply_info = info_iter.value().toString();
- m_reply_data = response;
- m_reply = true;
- } else if (msgid == Event) {
- // If event, save data object
- auto data_iter = payload.find("data");
- auto data = data_iter.value().toObject();
- auto data_string = data_iter.value().toString();
- if (!data_string.isEmpty())
- data_string.remove('\n');
-
- QJsonDocument datadoc = QJsonDocument::fromJson(data_string.toUtf8());
- m_event_data = datadoc.object();
-
- auto event_iter = payload.find("event");
- auto event_string = event_iter.value().toString();
- if (event_string.isEmpty()) {
- qWarning("Invalid appfw event message: empty event name");
- return false;
- }
- QStringList event_strings = event_string.split(QRegExp("/"));
- if (event_strings.size() != 2) {
- qWarning("Invalid appfw event message: malformed event name");
- return false;
- }
- m_event_api = event_strings[0];
- m_event_name = event_strings[1];
- m_event = true;
- }
-
- m_jdoc = jdoc;
- m_init = true;
- return m_init;
-}
diff --git a/voice/voicemessage.h b/voice/voicemessage.h
index 712631e..f7dd9d8 100644
--- a/voice/voicemessage.h
+++ b/voice/voicemessage.h
@@ -24,7 +24,6 @@ class VoiceMessage : public Message
Q_OBJECT
public:
virtual ~VoiceMessage() {};
- bool fromJDoc(QJsonDocument jdocData) override;
bool isAuthStateEvent() const {
return (this->eventName().contains("voice_authstate_event")); };