mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 15:10:39 +02:00
suggestion how to proceed with next steps ( prepare data )
Not validated i cannot check anything remotely
This commit is contained in:
parent
f9a0d26283
commit
7225ebe2ce
@ -14,6 +14,13 @@ ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync,
|
||||
// -----------------------------------
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Downloads new data from Colnod -> emits downloadDataFinished signal
|
||||
* @param time
|
||||
*
|
||||
* @return signal with nullptr when something went wrong
|
||||
* @return signal with data when valid data returned
|
||||
*/
|
||||
void ColnodAPI::downloadData(const Timestamp &time)
|
||||
{
|
||||
// Have to get Login
|
||||
|
||||
@ -37,3 +37,9 @@ public:
|
||||
QList<QString> deletedSubjects;
|
||||
};
|
||||
|
||||
class PreparedData
|
||||
{
|
||||
// TODO: make unique_ptr ( neeed because of ColnodAPI )
|
||||
std::shared_ptr<Data> databaseData;
|
||||
std::shared_ptr<Data> colnodData;
|
||||
};
|
||||
|
||||
@ -66,16 +66,25 @@ bool SyncManager::startSynchronization()
|
||||
connect(colnod.get(), &ColnodAPI::downloadDataFinished, [=](std::shared_ptr<Data> data) {
|
||||
if (!data) {
|
||||
qCritical(syncmanager) << "Not possible to get correct data from colnod";
|
||||
QCoreApplication::exit(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NOW I HAVE DATA FROM COLNOD
|
||||
// NOW I SHOULD HAVE VALID DATA FROM COLNOD
|
||||
// I can process data
|
||||
qDebug(syncmanager) << "I have colnod and database data";
|
||||
qDebug(syncmanager) << "updated token count" << data->updatedTokens.count();
|
||||
|
||||
std::unique_ptr<PreparedData> preparedData = prepareDataNew(databaseData, colnodData);
|
||||
if (!preparedData) {
|
||||
qCritical(syncmanager) << "Not possible to get correct data from colnod";
|
||||
QCoreApplication::exit(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
colnod->processData(preparedData->colnodData);
|
||||
|
||||
|
||||
});
|
||||
|
||||
return true;
|
||||
@ -121,6 +130,11 @@ bool SyncManager::startSynchronization()
|
||||
return true;
|
||||
}
|
||||
|
||||
std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<Data> &databaseData, const std::shared_ptr<Data> &colnodData)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool SyncManager::downloadData()
|
||||
{
|
||||
bool res = true;
|
||||
|
||||
@ -8,12 +8,25 @@ Q_DECLARE_LOGGING_CATEGORY(syncmanager)
|
||||
class SyncManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class SyncManagerTest;
|
||||
public:
|
||||
explicit SyncManager(bool dryMode);
|
||||
|
||||
bool databaseInitialization();
|
||||
bool startSynchronization();
|
||||
|
||||
// New approach
|
||||
private:
|
||||
/**
|
||||
* @brief Preapre data to be pushed to database and colnod from actual downloaded data
|
||||
* @param data from database
|
||||
* @param data from colnod
|
||||
* @return prepared data to be pushed into colnod and db
|
||||
*
|
||||
* @todo rename when removed old aproach
|
||||
*/
|
||||
std::unique_ptr<PreparedData> prepareDataNew(const std::shared_ptr<Data> &databaseData, const std::shared_ptr<Data> &colnodData);
|
||||
|
||||
private:
|
||||
bool downloadData();
|
||||
bool prepareData();
|
||||
|
||||
@ -8,16 +8,24 @@ class SyncManagerTest : public QObject
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void sync_init_test();
|
||||
void prepareData_test();
|
||||
|
||||
};
|
||||
|
||||
void SyncManagerTest::sync_init_test()
|
||||
{
|
||||
SyncManager sync(true);
|
||||
|
||||
QVERIFY(sync.databaseInitialization());
|
||||
}
|
||||
|
||||
void SyncManagerTest::prepareData_test()
|
||||
{
|
||||
SyncManager sync(true);
|
||||
auto dbData = std::make_shared<Data>();
|
||||
auto colnodData = std::make_shared<Data>();
|
||||
QVERIFY2(sync.prepareDataNew(dbData, colnodData), "finish unitest");
|
||||
}
|
||||
|
||||
QTEST_MAIN(SyncManagerTest)
|
||||
|
||||
#include "tst_syncmanager.moc"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user