Added error handling for invalid JSON string
[situare] / src / facebookservice / facebookauthentication.cpp
index 02d83ec..9537793 100644 (file)
@@ -129,42 +129,43 @@ bool FacebookAuthentication::updateCredentials(const QUrl &url)
                     if(list.at(i).startsWith("{")) {
                         QByteArray jsonString = list.at(i).toAscii();
                         QVariantMap result = parser.parse (jsonString, &ok).toMap();
-                        if (!ok) {
 
-                            qFatal("An error occurred during parsing");
+                        if (!ok) {
                             emit error(SituareError::INVALID_JSON);
                             found = false;
-                        }
-                        qDebug() << "Session Key" << result[SESSION_KEY].toString();
-                        m_loginCredentials.setSessionKey(result[SESSION_KEY].toString());
+                        } else {
+                            qDebug() << "Session Key" << result[SESSION_KEY].toString();
+                            m_loginCredentials.setSessionKey(result[SESSION_KEY].toString());
 
-//                        // commeted out until qjson parser can handle 64-bit integers
-//                        qDebug() << "userID" << result[USER_ID].toString();
-//                        m_loginCredentials.setUserID(result[USER_ID].toString().toAscii());
+    //                        // commeted out until qjson parser can handle 64-bit integers
+    //                        qDebug() << "userID" << result[USER_ID].toString();
+    //                        m_loginCredentials.setUserID(result[USER_ID].toString().toAscii());
 
-                        // dirty fix, get user id from session_key
-                        QStringList list = result[SESSION_KEY].toString().split("-");
-                        m_loginCredentials.setUserID(list.at(1));
-                        qDebug() << m_loginCredentials.userID();
+                            // dirty fix, get user id from session_key
+                            QStringList list = result[SESSION_KEY].toString().split("-");
+                            m_loginCredentials.setUserID(list.at(1));
+                            qDebug() << m_loginCredentials.userID();
 
-                        qDebug() << "Expires" << result[EXPIRES].toString();
-                        m_loginCredentials.setExpires(result[EXPIRES].toString());
+                            qDebug() << "Expires" << result[EXPIRES].toString();
+                            m_loginCredentials.setExpires(result[EXPIRES].toString());
 
-                        qDebug() << "Session Secret" << result[SESSION_SECRET].toString();
-                        m_loginCredentials.setSessionSecret(result[SESSION_SECRET].toString());
+                            qDebug() << "Session Secret" << result[SESSION_SECRET].toString();
+                            m_loginCredentials.setSessionSecret(result[SESSION_SECRET].toString());
 
-                        qDebug() << "Signature" << result[SIGNATURE].toString();
-                        m_loginCredentials.setSig(result[SIGNATURE].toString());
+                            qDebug() << "Signature" << result[SIGNATURE].toString();
+                            m_loginCredentials.setSig(result[SIGNATURE].toString());
+
+                            found = true;
+                            m_freshLogin = false;
+                            emit saveCookiesRequest();
+                            emit credentialsReady(m_loginCredentials);
+                        }
                     }
-                }
-                found = true;
-                m_freshLogin = false;
-                emit saveCookiesRequest();
-            }
-            emit credentialsReady(m_loginCredentials);
+                }       
+            }   
         }
         else if ( callbackUrl.indexOf(LOGIN_FAILURE_REPLY) == 0){
-            qWarning() << "login failure" << endl;
+            qDebug() << "login failure";
             qDebug() << callbackUrl;
             clearAccountInformation(true);
             if(m_freshLogin) {
@@ -189,7 +190,6 @@ bool FacebookAuthentication::updateCredentials(const QUrl &url)
         qDebug() << " Loading of page failed invalid URL" << endl;
         // we should not get a wrong page at this point
         emit loginFailure();
-        return false;
     }
     return found;
 }