#include <QString>
#include <QMessageBox>
#include "httpclient.h"
-#include "carmainwindow.h"
+#include "mainwindow.h"
/**
*@brief Constructor, connects object to GUI
*@param Pointer to carmainwindow, which is temporarily used during development
*/
-HttpClient::HttpClient(CarMainWindow *myCarw)
+HttpClient::HttpClient(MainWindow *myCarw)
{
myMainw = myCarw;
netManager = new QNetworkAccessManager();
/**
*@brief Sends registration information to the server in xml format.
*Reads user name, password and emaol address from resuldialogs internal variables.
- *@todo Replace msg box with better reaction to server`s responce.
*/
void HttpClient::requestRegistration()
{
qDebug() << "_requestRegistration" ;
- qDebug() << myMainw->myRegistration->getUserName() << "+" << myMainw->myRegistration->getPassword() << "+" << myMainw->myRegistration->getEmail();
+ qDebug() << myMainw->settingsDialog->getRegUserName() << "+" << myMainw->settingsDialog->getRegPassword() << "+" << myMainw->settingsDialog->getRegEmail();
QBuffer *regbuffer = new QBuffer();
QUrl qurl("http://api.speedfreak-app.com/api/register");
regbuffer->open(QBuffer::ReadWrite);
myXmlwriter->writeRegistering(regbuffer,
- myMainw->myRegistration->getUserName(),
- myMainw->myRegistration->getPassword(),
- myMainw->myRegistration->getEmail());
+ myMainw->settingsDialog->getRegUserName(),
+ myMainw->settingsDialog->getRegPassword(),
+ myMainw->settingsDialog->getRegEmail());
qDebug() << "carmainwindow: regbuffer->data(): " << regbuffer->data();
currentDownload = netManager->post(request, ("xml=" + regbuffer->data()));
connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfRegistration()));
//connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->settingsDialog->setLabelInfoToUser("Reguesting registration from server");
regbuffer->close();
}
/**
*@brief Sends result(s) to the server in xml format.
*Send authentication information in the header.
- *@todo Read category elsewhere.
*/
-void HttpClient::sendResultXml(QString category)
+void HttpClient::sendResultXml(QString category, double result)
{
qDebug() << "_sendResultXml";
QNetworkReply *currentDownload;
xmlbuffer->open(QBuffer::ReadWrite);
- myXmlwriter->writeResult(xmlbuffer);
+ myXmlwriter->writeResult(xmlbuffer, result);
qDebug() << "carmainwindow: xmlbuffer->data(): " << xmlbuffer->data();
- QString credentials = myMainw->myLogin->getUserName() + ":" + myMainw->myLogin->getPassword();
+ QString credentials = myMainw->settingsDialog->getUserName() + ":" + myMainw->settingsDialog->getPassword();
credentials = "Basic " + credentials.toAscii().toBase64();
request.setRawHeader(QByteArray("Authorization"),credentials.toAscii());
currentDownload = netManager->post(request, ("xml=" + xmlbuffer->data()));
connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfResult()));
//connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->resultDialog->setLabelInfoToUser("Sending result to server");
xmlbuffer->close();
}
/**
+ *@brief Sends route to the server in xml format.
+ *Send authentication information in the header.
+ *@todo Check destination URL.
+ */
+void HttpClient::sendRouteXml()
+{
+ qDebug() << "_sendRouteXml";
+
+ QString filename = "route.xml";
+ QFile file(filename);
+ if (!file.open(QFile::ReadOnly)) {
+ qDebug() << "_sendRouteXml file.open() fail";
+ return;
+ }
+
+ QUrl qurl("http://api.speedfreak-app.com/api/update/route");
+ qDebug() << qurl.toString();
+ QNetworkRequest request(qurl);
+ QNetworkReply *currentDownload;
+
+ QString credentials = myMainw->settingsDialog->getUserName() + ":" + myMainw->settingsDialog->getPassword();
+ credentials = "Basic " + credentials.toAscii().toBase64();
+ request.setRawHeader(QByteArray("Authorization"),credentials.toAscii());
+
+ currentDownload = netManager->post(request, ("xml=" + file.readAll()));
+ connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfRoute()));
+ //connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->routeDialog->setLabelInfoToUser("Sending route to server");
+
+ file.close();
+}
+
+/**
*@brief Request the Top10List of certain category from the server.
*Send authentication information in the header.
*@param Category of results.
QNetworkRequest request(qurl);
QNetworkReply *currentDownload;
- QString credentials = myMainw->myLogin->getUserName() + ":" + myMainw->myLogin->getPassword();
+ QString credentials = myMainw->settingsDialog->getUserName() + ":" + myMainw->settingsDialog->getPassword();
credentials = "Basic " + credentials.toAscii().toBase64();
request.setRawHeader(QByteArray("Authorization"),credentials.toAscii());
currentDownload = netManager->post(request, ("data=" ));
connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfToplist()));
//connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->topResultDialog->setLabelInfoToUser("Reguesting top10 list from server");
}
QNetworkRequest request(qurl);
QNetworkReply *currentDownload;
- QString credentials = myMainw->myLogin->getUserName() + ":" + myMainw->myLogin->getPassword();
+ QString credentials = myMainw->settingsDialog->getUserName() + ":" + myMainw->settingsDialog->getPassword();
credentials = "Basic " + credentials.toAscii().toBase64();
request.setRawHeader(QByteArray("Authorization"),credentials.toAscii());
currentDownload = netManager->post(request, ("data=" ));
connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfCategories()));
//connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->topResultDialog->setLabelInfoToUser("Reguesting categories from server");
}
QNetworkRequest request(qurl);
QNetworkReply *currentDownload;
- QString credentials = myMainw->myLogin->getUserName() + ":" + myMainw->myLogin->getPassword();
+ QString credentials = myMainw->settingsDialog->getUserName() + ":" + myMainw->settingsDialog->getPassword();
credentials = "Basic " + credentials.toAscii().toBase64();
request.setRawHeader(QByteArray("Authorization"),credentials.toAscii());
currentDownload = netManager->post(request, ("data=" ));
connect(currentDownload,SIGNAL(finished()),this,SLOT(ackOfLogin()));
//connect(currentDownload,SIGNAL(error(QNetworkReply::NetworkError)),myMainw,SLOT(errorFromServer(QNetworkReply::NetworkError)));
+ myMainw->settingsDialog->setLabelInfoToUser("Checking login validity from server");
}
/**
*@brief React to servers responce after result has been sent.
- *@todo Implement consequencies of reply.
*/
void HttpClient::ackOfResult()
{
qDebug() << "_ackOfResult";
+ myMainw->resultDialog->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
QNetworkReply::NetworkError errorcode;
errorcode = reply->error();
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to result sending ",reply->errorString());
+ QMessageBox::about(myMainw->resultDialog, "Server reply to result sending ",reply->errorString());
}
else {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to result sending", "Result received " + reply->readAll());
+ QMessageBox::about(myMainw->resultDialog, "Server reply to result sending", "Result received " + reply->readAll());
}
-
}
+/**
+ *@brief React to servers responce after route has been sent.
+ */
+void HttpClient::ackOfRoute()
+{
+ qDebug() << "_ackOfRoute";
+
+ myMainw->routeDialog->setLabelInfoToUser("");
+
+ QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
+
+ QNetworkReply::NetworkError errorcode;
+ errorcode = reply->error();
+ if(errorcode != 0) {
+ qDebug() << "errorcode:" << errorcode << reply->errorString();
+ QMessageBox::about(myMainw->routeDialog, "Server reply to route sending ",reply->errorString());
+ }
+ else {
+ qDebug() << "errorcode:" << errorcode << reply->errorString();
+ QMessageBox::about(myMainw, "Server reply to route sending", "Route received " + reply->readAll());
+ }
+}
/**
*@brief React to servers responce after registration has been sent.
{
qDebug() << "_ackOfRegistration";
+ myMainw->settingsDialog->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
QNetworkReply::NetworkError errorcode;
errorcode = reply->error();
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to registration",reply->readAll());
+ QMessageBox::about(myMainw->settingsDialog, "Server reply to registration",reply->readAll());
}
else {
qDebug() << "errorcode=0" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to registration", "User registration " + reply->readAll());
+ QMessageBox::about(myMainw->settingsDialog, "Server reply to registration", "User registration " + reply->readAll());
}
-
}
{
qDebug() << "_ackOfCategories";
+ myMainw->topResultDialog->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
myXmlreader->xmlReadCategories(reply);
errorcode = reply->error();
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to requesting categories",reply->errorString());
+ QMessageBox::about(myMainw->topResultDialog, "Server reply to requesting categories",reply->errorString());
}
else {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to requesting categories ", "OK");
+ QMessageBox::about(myMainw->topResultDialog, "Server reply to requesting categories ", "OK");
}
-
}
/**
*@brief React to servers responce after request of TopList in certain category has been sent.
- *@todo Implement routing reply`s contents to UI.
*/
void HttpClient::ackOfLogin()
{
qDebug() << "_ackOffLogin";
+ myMainw->settingsDialog->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
QNetworkReply::NetworkError errorcode;
errorcode = reply->error();
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server does not recognize your username. Please registrate.",reply->errorString());
+ QMessageBox::about(myMainw->settingsDialog, "Server does not recognize your username. Please registrate.",reply->errorString());
}
else {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to login", "User login " + reply->readAll());
+ QMessageBox::about(myMainw->settingsDialog, "Server reply to login", "User login " + reply->readAll());
}
+
+ myMainw->settingsDialog->close();
}
{
qDebug() << "_errorFromServer";
+ //myMainw->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode;
- //Note that errors are already reported on other ach-functions for server communication
+ //Note that errors are already reported on other each functions for server communication
//QMessageBox::about(myMainw, "Server reported an error", reply->errorString());
}
else {
qDebug() << "errorcode:" << errorcode << reply->errorString();
qDebug() << reply->readAll();
}
-
}
/**
*@brief React to servers responce after request of TopList in certain category has been sent.
- *@todo Implement routing reply`s contents to UI.
*/
void HttpClient::ackOfToplist()
{
qDebug() << "_ackOfToplist";
+ //myMainw->setLabelInfoToUser("");
+
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
myXmlreader->xmlReadTop10Results(reply);
errorcode = reply->error();
if(errorcode != 0) {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to requesting top 10 list",reply->errorString());
+ QMessageBox::about(myMainw->topResultDialog, "Server reply to requesting top 10 list",reply->errorString());
}
else {
qDebug() << "errorcode:" << errorcode << reply->errorString();
- QMessageBox::about(myMainw, "Server reply to requesting top 10 list", "OK " + reply->readAll());
+ //QMessageBox::about(myMainw->topResultDialog, "Server reply to requesting top 10 list", "OK " + reply->readAll());
}
-
}