From 9bbc88eca7bb6d91f954bcdd22545809c3f3652f Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 9 Jan 2015 06:25:23 +0100 Subject: [PATCH] login --- FeedMonkey.pro | 6 ++++-- tinytinyrss.cpp | 26 +++++++++++++++++++++++--- tinytinyrss.h | 3 ++- tinytinyrsslogin.cpp | 32 ++++++++++++++++++++++++++++++++ tinytinyrsslogin.h | 20 ++++++++++++++++++++ 5 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 tinytinyrsslogin.cpp create mode 100644 tinytinyrsslogin.h diff --git a/FeedMonkey.pro b/FeedMonkey.pro index f714892..2a1cc89 100644 --- a/FeedMonkey.pro +++ b/FeedMonkey.pro @@ -3,7 +3,8 @@ TEMPLATE = app QT += qml quick SOURCES += main.cpp \ - tinytinyrss.cpp + tinytinyrss.cpp \ + tinytinyrsslogin.cpp RESOURCES += qml.qrc \ html.qrc @@ -23,4 +24,5 @@ OTHER_FILES += \ content.js HEADERS += \ - tinytinyrss.h + tinytinyrss.h \ + tinytinyrsslogin.h diff --git a/tinytinyrss.cpp b/tinytinyrss.cpp index ee7ed8d..c545f12 100644 --- a/tinytinyrss.cpp +++ b/tinytinyrss.cpp @@ -15,6 +15,26 @@ TinyTinyRSS::~TinyTinyRSS() } +QString TinyTinyRSS::login(QString serverUrl, QString user, QString password) +{ + QVariantMap options; + options.insert("op", "login"); + options.insert("user", user); + options.insert("password", password); + + QJsonObject jsonobj = QJsonObject::fromVariantMap(options); + QJsonDocument json = QJsonDocument(jsonobj); + + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + + QUrl url(serverUrl + "/api/"); + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); + + QObject::connect(manager, SIGNAL(finished(QNetworkReply)), this, SIGNAL(replyLogin(QNetworkReply))); + manager->post(request, json.toBinaryData()); +} + void TinyTinyRSS::doOperation(QString operation, QVariantMap opts) { QVariantMap options; options.insert("sid", this->sessionId); @@ -35,10 +55,10 @@ void TinyTinyRSS::doOperation(QString operation, QVariantMap opts) { QNetworkRequest request(url); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); - QObject::connect(manager, &QNetworkAccessManager::finished, this, &TinyTinyRSS::replyFinishedOperation); - manager->post(request, json); + QObject::connect(manager, SIGNAL(finished(QNetworkReply)), this, SIGNAL(replyFinishedOperation(QNetworkReply))); + manager->post(request, json.toBinaryData()); } void TinyTinyRSS::replyFinishedOperation(QNetworkReply *reply) { - + qWarning() << reply; } diff --git a/tinytinyrss.h b/tinytinyrss.h index 114687b..69b4435 100644 --- a/tinytinyrss.h +++ b/tinytinyrss.h @@ -13,13 +13,14 @@ class TinyTinyRSS : QObject public: TinyTinyRSS(QString serverUrl, QString sessionId); ~TinyTinyRSS(); + void login(); + void replyFinishedOperation(QNetworkReply *reply); private: QString serverUrl; QString sessionId; void doOperation(QString operation, QVariantMap opts); - void replyFinishedOperation(QNetworkReply *reply); }; #endif // TINYTINYRSS_H diff --git a/tinytinyrsslogin.cpp b/tinytinyrsslogin.cpp new file mode 100644 index 0000000..d24816e --- /dev/null +++ b/tinytinyrsslogin.cpp @@ -0,0 +1,32 @@ +#include "tinytinyrsslogin.h" + +TinyTinyRSSLogin::TinyTinyRSSLogin(QObject *parent) : + QObject(parent) +{ +} + +void TinyTinyRSSLogin::login(QString serverUrl, QString user, QString password) +{ + QVariantMap options; + options.insert("op", "login"); + options.insert("user", user); + options.insert("password", password); + + QJsonObject jsonobj = QJsonObject::fromVariantMap(options); + QJsonDocument json = QJsonDocument(jsonobj); + + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + + QUrl url(serverUrl + "/api/"); + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); + + QObject::connect(manager, SIGNAL(finished(QNetworkReply)), this, SIGNAL(replyLogin(QNetworkReply))); + manager->post(request, json.toBinaryData()); +} + +TinyTinyRSSLogin::replyLogin(QNetworkReply reply) +{ + QString sessionId = "1234"; + this->parent()->loggedIn(QString(sessionId)); +} diff --git a/tinytinyrsslogin.h b/tinytinyrsslogin.h new file mode 100644 index 0000000..be0b9dc --- /dev/null +++ b/tinytinyrsslogin.h @@ -0,0 +1,20 @@ +#ifndef TINYTINYRSSLOGIN_H +#define TINYTINYRSSLOGIN_H + +#include + +class TinyTinyRSSLogin : public QObject +{ + Q_OBJECT +public: + explicit TinyTinyRSSLogin(QObject *parent = 0); + login(QString serverUrl, QString user, QString password); + +signals: + replyLogin(QNetworkReply reply); + +public slots: + +}; + +#endif // TINYTINYRSSLOGIN_H