mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 14:30:50 +02:00
added staff to handle initialization error
This commit is contained in:
parent
811345c301
commit
b914b1c11d
@ -16,6 +16,12 @@ int main(int argc, char *argv[])
|
|||||||
parser.addOption(dryModeOption);
|
parser.addOption(dryModeOption);
|
||||||
parser.process(app);
|
parser.process(app);
|
||||||
SyncManager api(parser.isSet(dryModeOption));
|
SyncManager api(parser.isSet(dryModeOption));
|
||||||
|
if (!api.isValid())
|
||||||
|
return 1;
|
||||||
|
QObject::connect(&api, &SyncManager::error, [](){
|
||||||
|
qDebug() << "error";
|
||||||
|
QCoreApplication::exit(1);
|
||||||
|
});
|
||||||
api.loadDataFromDB();
|
api.loadDataFromDB();
|
||||||
api.loadDataFromColnod();
|
api.loadDataFromColnod();
|
||||||
QObject::connect(&api, &SyncManager::dataDownloaded, [&](){
|
QObject::connect(&api, &SyncManager::dataDownloaded, [&](){
|
||||||
@ -26,9 +32,5 @@ int main(int argc, char *argv[])
|
|||||||
api.syncDataFromColnodToDB();
|
api.syncDataFromColnodToDB();
|
||||||
api.syncDataFromDBToColnod();
|
api.syncDataFromDBToColnod();
|
||||||
});
|
});
|
||||||
QObject::connect(&api, &SyncManager::error, [](){
|
|
||||||
qDebug() << "error";
|
|
||||||
QCoreApplication::exit();
|
|
||||||
});
|
|
||||||
return QCoreApplication::exec();
|
return QCoreApplication::exec();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,9 +10,13 @@ DatabaseManager::DatabaseManager(const QString& host, const QString& dbName, con
|
|||||||
db.setPassword(password);
|
db.setPassword(password);
|
||||||
if (!db.open())
|
if (!db.open())
|
||||||
{
|
{
|
||||||
log("Opening error" + db.lastError().text());
|
opened = false;
|
||||||
|
Logger::log("Opening error" + db.lastError().text());
|
||||||
emit error();
|
emit error();
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
opened = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add or update subject to db
|
// add or update subject to db
|
||||||
@ -139,7 +143,7 @@ bool DatabaseManager::executeQuery(QSqlQuery &query, const QString &statement)
|
|||||||
if (!dryMode || getLastQuery(query).startsWith("SELECT")){
|
if (!dryMode || getLastQuery(query).startsWith("SELECT")){
|
||||||
if (!query.exec()){
|
if (!query.exec()){
|
||||||
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
|
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
|
||||||
log(QString(msg));
|
Logger::logToDb(QString(msg));
|
||||||
emit error();
|
emit error();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -151,7 +155,7 @@ bool DatabaseManager::executeQuery(QSqlQuery &query, const QString &statement)
|
|||||||
if (!dryMode || statement.startsWith("SELECT")){
|
if (!dryMode || statement.startsWith("SELECT")){
|
||||||
if (!query.exec(statement)){
|
if (!query.exec(statement)){
|
||||||
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
|
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
|
||||||
log(QString(msg));
|
Logger::logToDb(QString(msg));
|
||||||
emit error();
|
emit error();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -300,3 +304,8 @@ bool DatabaseManager::checkDeletedToken(const QString &id)
|
|||||||
query.next();
|
query.next();
|
||||||
return query.value(0).toBool();
|
return query.value(0).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DatabaseManager::isOpen()
|
||||||
|
{
|
||||||
|
return opened;
|
||||||
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
#include "subject.h"
|
#include "subject.h"
|
||||||
#include "token.h"
|
#include "token.h"
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
//#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
|
|
||||||
class DatabaseManager : public QObject
|
class DatabaseManager : public QObject
|
||||||
@ -41,6 +41,8 @@ public:
|
|||||||
QString getSubjectNameById(const QString &id);
|
QString getSubjectNameById(const QString &id);
|
||||||
bool checkDeletedToken(const QString &id);
|
bool checkDeletedToken(const QString &id);
|
||||||
|
|
||||||
|
bool isOpen();
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool checkIfExists(const QString& id, const QString& table);
|
bool checkIfExists(const QString& id, const QString& table);
|
||||||
@ -53,4 +55,5 @@ signals:
|
|||||||
private:
|
private:
|
||||||
QSqlDatabase db;
|
QSqlDatabase db;
|
||||||
bool dryMode = false;
|
bool dryMode = false;
|
||||||
|
bool opened = false;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -5,9 +5,15 @@ DataManager::DataManager(const bool &dryMode)
|
|||||||
{
|
{
|
||||||
db = std::make_shared<DatabaseManager>("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode);
|
db = std::make_shared<DatabaseManager>("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode);
|
||||||
//db = std::make_shared<DatabaseManager>("localhost", "deloitte", "postgres", "34rjkciea12");
|
//db = std::make_shared<DatabaseManager>("localhost", "deloitte", "postgres", "34rjkciea12");
|
||||||
|
if (db->isOpen()){
|
||||||
Logger::setDBMan(db);
|
Logger::setDBMan(db);
|
||||||
nextLastSync = db->getNow();
|
nextLastSync = db->getNow();
|
||||||
lastSync = db->getLastSync();
|
lastSync = db->getLastSync();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
emit error();
|
||||||
|
QCoreApplication::quit();
|
||||||
|
}
|
||||||
connect(db.get(), &DatabaseManager::error, this, &DataManager::error);
|
connect(db.get(), &DatabaseManager::error, this, &DataManager::error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,6 +83,7 @@ void DataManager::fillSubjectsToUpdateColnod(const QString& response)
|
|||||||
// load working sets with updated/deleted tokens from DB
|
// load working sets with updated/deleted tokens from DB
|
||||||
void DataManager::fillTokensToChangeDB()
|
void DataManager::fillTokensToChangeDB()
|
||||||
{
|
{
|
||||||
|
if (db->isOpen()){
|
||||||
QSqlQuery query = db->getUpdatedTokens();
|
QSqlQuery query = db->getUpdatedTokens();
|
||||||
while (query.next())
|
while (query.next())
|
||||||
{
|
{
|
||||||
@ -92,6 +99,8 @@ void DataManager::fillTokensToChangeDB()
|
|||||||
qDebug() << "DB:" << tokensToUpdateFromDBToColnod.size() << "tokens to update";
|
qDebug() << "DB:" << tokensToUpdateFromDBToColnod.size() << "tokens to update";
|
||||||
qDebug() << "DB:" << tokensFromDBToDeleteFromColnod.size() << "tokens to delete";
|
qDebug() << "DB:" << tokensFromDBToDeleteFromColnod.size() << "tokens to delete";
|
||||||
}
|
}
|
||||||
|
else emit error();
|
||||||
|
}
|
||||||
|
|
||||||
void DataManager::fillSubjectsToUpdateDB()
|
void DataManager::fillSubjectsToUpdateDB()
|
||||||
{
|
{
|
||||||
@ -278,6 +287,7 @@ void DataManager::clear()
|
|||||||
// on the very end of sync update last sync time to begin time of this sync
|
// on the very end of sync update last sync time to begin time of this sync
|
||||||
void DataManager::updateLastSync()
|
void DataManager::updateLastSync()
|
||||||
{
|
{
|
||||||
|
if (db->isOpen())
|
||||||
db->updateLastSync(nextLastSync);
|
db->updateLastSync(nextLastSync);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,8 @@ public:
|
|||||||
const quint64 &getLastSync() {return lastSync;}
|
const quint64 &getLastSync() {return lastSync;}
|
||||||
const quint64 &getCurrentSync() {return nextLastSync;}
|
const quint64 &getCurrentSync() {return nextLastSync;}
|
||||||
|
|
||||||
|
bool isDBOpened() {return db->isOpen();}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void clear();
|
void clear();
|
||||||
void setLastUpdate();
|
void setLastUpdate();
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
#include "databasemanager.h"
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ void Logger::log(const QString& msg)
|
|||||||
|
|
||||||
void Logger::logToDb(const QString &msg)
|
void Logger::logToDb(const QString &msg)
|
||||||
{
|
{
|
||||||
Q_ASSERT(Logger::dbMan);
|
if (dbMan)
|
||||||
Logger::dbMan->log(msg);
|
Logger::dbMan->log(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,9 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QSqlDatabase>
|
#include <QSqlDatabase>
|
||||||
#include "databasemanager.h"
|
#include <memory>
|
||||||
|
|
||||||
|
class DatabaseManager;
|
||||||
|
|
||||||
|
|
||||||
class Logger
|
class Logger
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
#include "syncmanager.h"
|
#include "syncmanager.h"
|
||||||
|
|
||||||
SyncManager::SyncManager(bool dryMode)
|
SyncManager::SyncManager(bool dryMode)
|
||||||
|
:dryMode(dryMode)
|
||||||
{
|
{
|
||||||
reqMan = std::make_unique<RequestManager>();
|
reqMan = std::make_unique<RequestManager>();
|
||||||
dataMan = std::make_unique<DataManager>(dryMode);
|
dataMan = std::make_unique<DataManager>(dryMode);
|
||||||
this->dryMode = dryMode;
|
|
||||||
|
|
||||||
connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error);
|
connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error);
|
||||||
connect(dataMan.get(), &DataManager::error, this, &SyncManager::error);
|
connect(dataMan.get(), &DataManager::error, this, &SyncManager::error);
|
||||||
}
|
}
|
||||||
@ -125,8 +124,10 @@ void SyncManager::syncDataFromDBToColnod()
|
|||||||
if (!dataMan->getTokensToDeleteDB().isEmpty()){
|
if (!dataMan->getTokensToDeleteDB().isEmpty()){
|
||||||
syncDeletedDataFromDBToColnod();
|
syncDeletedDataFromDBToColnod();
|
||||||
}
|
}
|
||||||
else
|
else{
|
||||||
deleteFinished = true;
|
deleteFinished = true;
|
||||||
|
areDataUpdatedToColnod();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add or update tokens to Colnod
|
// add or update tokens to Colnod
|
||||||
@ -184,6 +185,11 @@ void SyncManager::prepareDatabase()
|
|||||||
dataMan->emptyDatabase();
|
dataMan->emptyDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SyncManager::isValid()
|
||||||
|
{
|
||||||
|
return dataMan->isDBOpened();
|
||||||
|
}
|
||||||
|
|
||||||
// emit signal when all data is downloaded from Colnod
|
// emit signal when all data is downloaded from Colnod
|
||||||
void SyncManager::areChangedDataReady()
|
void SyncManager::areChangedDataReady()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -17,6 +17,8 @@ public:
|
|||||||
|
|
||||||
void prepareDatabase();
|
void prepareDatabase();
|
||||||
|
|
||||||
|
bool isValid();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void loadDataFromColnod();
|
void loadDataFromColnod();
|
||||||
void loadDataFromDB();
|
void loadDataFromDB();
|
||||||
|
|||||||
@ -37,11 +37,6 @@ private slots:
|
|||||||
void deleteTokens();
|
void deleteTokens();
|
||||||
void subjectJSONParser();
|
void subjectJSONParser();
|
||||||
void tokenJSONParser();
|
void tokenJSONParser();
|
||||||
//void connectToDB();
|
|
||||||
//void debugConnection();
|
|
||||||
void saveDataToDB();
|
|
||||||
void getUuid();
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<Token> getTestToken();
|
std::shared_ptr<Token> getTestToken();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user