Working adding of inoreader acc.
This commit is contained in:
parent
6dde6928f6
commit
d4d186b951
|
@ -22,6 +22,8 @@
|
|||
#include "miscellaneous/iconfactory.h"
|
||||
#include "miscellaneous/textfactory.h"
|
||||
#include "services/abstract/category.h"
|
||||
#include "services/inoreader/inoreaderserviceroot.h"
|
||||
#include "services/inoreader/network/inoreadernetworkfactory.h"
|
||||
#include "services/owncloud/definitions.h"
|
||||
#include "services/owncloud/network/owncloudnetworkfactory.h"
|
||||
#include "services/owncloud/owncloudfeed.h"
|
||||
|
@ -1480,6 +1482,40 @@ Assignment DatabaseQueries::getCategories(QSqlDatabase db, int account_id, bool*
|
|||
return categories;
|
||||
}
|
||||
|
||||
QList<ServiceRoot*> DatabaseQueries::getInoreaderAccounts(QSqlDatabase db, bool* ok) {
|
||||
QSqlQuery query(db);
|
||||
|
||||
QList<ServiceRoot*> roots;
|
||||
|
||||
if (query.exec("SELECT * FROM InoreaderAccounts;")) {
|
||||
while (query.next()) {
|
||||
InoreaderServiceRoot* root = new InoreaderServiceRoot(nullptr);
|
||||
|
||||
root->setId(query.value(0).toInt());
|
||||
root->setAccountId(query.value(0).toInt());
|
||||
root->network()->setUsername(query.value(1).toString());
|
||||
root->network()->setAccessToken(query.value(2).toString());
|
||||
root->network()->setRefreshToken(query.value(3).toString());
|
||||
root->network()->setBatchSize(query.value(4).toInt());
|
||||
root->updateTitle();
|
||||
roots.append(root);
|
||||
}
|
||||
|
||||
if (ok != nullptr) {
|
||||
*ok = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
qWarning("Inoreader: Getting list of activated accounts failed: '%s'.", qPrintable(query.lastError().text()));
|
||||
|
||||
if (ok != nullptr) {
|
||||
*ok = false;
|
||||
}
|
||||
}
|
||||
|
||||
return roots;
|
||||
}
|
||||
|
||||
bool DatabaseQueries::overwriteInoreaderAccount(QSqlDatabase db, const QString& username, const QString& access_token,
|
||||
const QString& refresh_token, int batch_size, int account_id) {
|
||||
QSqlQuery query(db);
|
||||
|
|
|
@ -79,6 +79,7 @@ class DatabaseQueries {
|
|||
static Assignment getCategories(QSqlDatabase db, int account_id, bool* ok = nullptr);
|
||||
|
||||
// Inoreader account.
|
||||
static QList<ServiceRoot*> getInoreaderAccounts(QSqlDatabase db, bool* ok = nullptr);
|
||||
static bool overwriteInoreaderAccount(QSqlDatabase db, const QString& username, const QString& access_token,
|
||||
const QString& refresh_token, int batch_size, int account_id);
|
||||
static bool createInoreaderAccount(QSqlDatabase db, int id_to_assign, const QString& username,
|
||||
|
|
|
@ -91,6 +91,10 @@ void FormEditInoreaderAccount::onClickedOk() {
|
|||
editing_account = false;
|
||||
}
|
||||
|
||||
if (m_editableRoot->network()->userName().isEmpty()) {
|
||||
m_editableRoot->network()->setUsername(tr("uknown"));
|
||||
}
|
||||
|
||||
m_editableRoot->network()->setBatchSize(m_ui.m_spinLimitMessages->value());
|
||||
m_editableRoot->saveAccountDataToDatabase();
|
||||
accept();
|
||||
|
|
|
@ -34,7 +34,9 @@ ServiceRoot* InoreaderEntryPoint::createNewRoot() const {
|
|||
}
|
||||
|
||||
QList<ServiceRoot*> InoreaderEntryPoint::initializeSubtree() const {
|
||||
return QList<ServiceRoot*>();
|
||||
QSqlDatabase database = qApp->database()->connection(QSL("InoreaderEntryPoint"), DatabaseFactory::FromSettings);
|
||||
|
||||
return DatabaseQueries::getInoreaderAccounts(database);
|
||||
}
|
||||
|
||||
bool InoreaderEntryPoint::isSingleInstanceService() const {
|
||||
|
|
|
@ -32,19 +32,21 @@ InoreaderServiceRoot::InoreaderServiceRoot(InoreaderNetworkFactory* network, Roo
|
|||
else {
|
||||
m_network->setParent(this);
|
||||
}
|
||||
|
||||
setIcon(InoreaderEntryPoint().icon());
|
||||
}
|
||||
|
||||
InoreaderServiceRoot::~InoreaderServiceRoot() {}
|
||||
|
||||
void InoreaderServiceRoot::updateTitle() {
|
||||
setTitle(m_network->username() + QSL(" (Inoreader)"));
|
||||
setTitle(m_network->userName() + QSL(" (Inoreader)"));
|
||||
}
|
||||
|
||||
void InoreaderServiceRoot::saveAccountDataToDatabase() {
|
||||
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
|
||||
|
||||
if (accountId() != NO_PARENT_CATEGORY) {
|
||||
if (DatabaseQueries::overwriteInoreaderAccount(database, m_network->username(), m_network->accessToken(),
|
||||
if (DatabaseQueries::overwriteInoreaderAccount(database, m_network->userName(), m_network->accessToken(),
|
||||
m_network->refreshToken(), m_network->batchSize(),
|
||||
accountId())) {
|
||||
updateTitle();
|
||||
|
@ -57,7 +59,7 @@ void InoreaderServiceRoot::saveAccountDataToDatabase() {
|
|||
|
||||
if (saved) {
|
||||
if (DatabaseQueries::createInoreaderAccount(database, id_to_assign,
|
||||
m_network->username(), m_network->accessToken(),
|
||||
m_network->userName(), m_network->accessToken(),
|
||||
m_network->refreshToken(), m_network->batchSize())) {
|
||||
setId(id_to_assign);
|
||||
setAccountId(id_to_assign);
|
||||
|
|
|
@ -45,8 +45,6 @@ class InoreaderServiceRoot : public ServiceRoot {
|
|||
public slots:
|
||||
void addNewFeed(const QString& url);
|
||||
void addNewCategory();
|
||||
|
||||
private slots:
|
||||
void updateTitle();
|
||||
|
||||
private:
|
||||
|
|
|
@ -38,7 +38,7 @@ bool InoreaderNetworkFactory::isLoggedIn() const {
|
|||
return m_oauth2->expirationAt() > QDateTime::currentDateTime() && m_oauth2->status() == QAbstractOAuth::Status::Granted;
|
||||
}
|
||||
|
||||
QString InoreaderNetworkFactory::username() const {
|
||||
QString InoreaderNetworkFactory::userName() const {
|
||||
return m_username;
|
||||
}
|
||||
|
||||
|
@ -122,6 +122,10 @@ void InoreaderNetworkFactory::initializeOauth() {
|
|||
});
|
||||
}
|
||||
|
||||
void InoreaderNetworkFactory::setUsername(const QString& username) {
|
||||
m_username = username;
|
||||
}
|
||||
|
||||
void InoreaderNetworkFactory::setRefreshToken(const QString& refreshToken) {
|
||||
m_refreshToken = refreshToken;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,8 @@ class InoreaderNetworkFactory : public QObject {
|
|||
|
||||
bool isLoggedIn() const;
|
||||
|
||||
QString username() const;
|
||||
QString userName() const;
|
||||
void setUsername(const QString& username);
|
||||
|
||||
// Gets/sets the amount of messages to obtain during single feed update.
|
||||
int batchSize() const;
|
||||
|
|
Loading…
Reference in New Issue