mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 12:50:51 +02:00
86 lines
2.5 KiB
C++
86 lines
2.5 KiB
C++
#pragma once
|
|
|
|
#include "token.h"
|
|
#include "subject.h"
|
|
#include "requestmanager.h"
|
|
#include "databasemanager.h"
|
|
#include <QJsonDocument>
|
|
#include <qjsonarray.h>
|
|
#include <logger.h>
|
|
|
|
|
|
class DataManager : public QObject
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit DataManager(const bool& dryMode = false);
|
|
|
|
void fillFullTokensColnod(const QString& jsonResponse);
|
|
|
|
void fillTokensToUpdateColnod(const QString& jsonResponse);
|
|
void fillSubjectsToUpdateColnod(const QString& jsonResponse);
|
|
void fillSubjectsToDeleteColnod(const QString& jsonResponse);
|
|
void fillTokensToDeleteColnod(const QString& jsonResponse);
|
|
|
|
void fillTokensToChangeDB();
|
|
void fillSubjectsToUpdateDB();
|
|
void fillSubjectsToDeleteDB();
|
|
|
|
void filterTokensDB();
|
|
void filterTokensColnod();
|
|
|
|
void pushSubjectsToDB();
|
|
void pushTokensToDB();
|
|
void deleteSubjectsFromDB();
|
|
void setDeletedToTokensFromDB();
|
|
|
|
void updateLastSync();
|
|
|
|
void dropTables();
|
|
|
|
void createTables();
|
|
|
|
quint64 getLastModifiedOfToken(const QString &id);
|
|
|
|
QHash<QString, std::shared_ptr<Token>> getTokensToUpdateFromColnod() {return tokensToUpdateFromColnodToDB;}
|
|
QList<QString> getTokensToDeleteColnod() {return tokensFromColnodToDeleteFromDB;}
|
|
QHash<QString, std::shared_ptr<Token>> getTokensToUpdateFromDB() {return tokensToUpdateFromDBToColnod;}
|
|
QList<QString> getTokensToDeleteDB() {return tokensFromDBToDeleteFromColnod;}
|
|
|
|
const quint64 &getLastSync() {return lastSync;}
|
|
const quint64 &getCurrentSync() {return nextLastSync;}
|
|
|
|
bool isDBOpened() {return db->isOpen();}
|
|
|
|
public slots:
|
|
void clear();
|
|
void setLastUpdate();
|
|
void setLastUpdate(const QString &id);
|
|
|
|
signals:
|
|
void error();
|
|
|
|
private:
|
|
std::shared_ptr<DatabaseManager> db;
|
|
|
|
quint64 lastSync; // time of last run
|
|
quint64 nextLastSync; // time of begin of this run
|
|
|
|
QHash<QString, std::shared_ptr<Token>> allTokensFromColnodById;
|
|
QHash<QString, std::shared_ptr<Token>> allTokensFromColnodByName;
|
|
QHash<QString, std::shared_ptr<Subject>> subjectsToUpdateFromColnodToDB;
|
|
QHash<QString, std::shared_ptr<Token>> tokensToUpdateFromColnodToDB;
|
|
QHash<QString, std::shared_ptr<Subject>> subjectsDB; // in future
|
|
QHash<QString, std::shared_ptr<Token>> tokensToUpdateFromDBToColnod;
|
|
|
|
QList<QString> subjectsFromColnodToDeleteFromDB;
|
|
QList<QString> tokensFromColnodToDeleteFromDB;
|
|
QList<QString> subjectsToDeleteDB;
|
|
QList<QString> tokensFromDBToDeleteFromColnod;
|
|
|
|
bool dryMode = false;
|
|
|
|
};
|