forked from ondra/colnod-connector
75 lines
1.8 KiB
C++
75 lines
1.8 KiB
C++
#ifndef DATAMANAGER_H
|
|
#define DATAMANAGER_H
|
|
|
|
#include "token.h"
|
|
#include "subject.h"
|
|
#include "requestmanager.h"
|
|
#include "databasemanager.h"
|
|
#include <QJsonDocument>
|
|
#include <qjsonarray.h>
|
|
|
|
|
|
class DataManager : public QObject
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
DataManager();
|
|
|
|
void getAndSetLastSync();
|
|
void fillFullTokensColnod(QString jsonResponse);
|
|
|
|
void fillTokensColnod(QString jsonResponse);
|
|
void fillSubjectsColnod(QString jsonResponse);
|
|
void fillSubjectsToDeleteColnod(QString jsonResponse);
|
|
void fillTokensToDeleteColnod(QString jsonResponse);
|
|
|
|
void fillTokensDB();
|
|
void fillSubjectsDB();
|
|
void fillSubjectsToDeleteDB();
|
|
void fillTokensToDeleteDB();
|
|
|
|
void pushSubjectsToDB();
|
|
void pushTokensToDB();
|
|
void deleteSubjectsFromDB();
|
|
void deleteTokensFromDB();
|
|
|
|
void updateLastSync();
|
|
|
|
bool haveData();
|
|
bool haveChangedData();
|
|
bool haveProcessData();
|
|
|
|
void emptyDatabase();
|
|
void clear();
|
|
|
|
void loadTokensToAdd();
|
|
void loadTokensToDelete();
|
|
|
|
QHash<QString, QPointer<Token>>* getTokens() {return &tokensColnod;}
|
|
QList<QString>* getTokensToDelete() {return &tokensToDeleteColnod;}
|
|
|
|
const uint64_t &getLastSync() {return lastSync;}
|
|
|
|
private:
|
|
DatabaseManager *db = nullptr;
|
|
|
|
uint64_t lastSync;
|
|
|
|
QHash<QString, QPointer<Subject>> subjectsColnod;
|
|
QHash<QString, QPointer<Token>> tokensColnod;
|
|
QHash<QString, QPointer<Token>> fullTokensColnod;
|
|
QHash<QString, QPointer<Subject>> subjectsDB; // in future
|
|
QHash<QString, QPointer<Token>> tokensDB;
|
|
|
|
|
|
QList<QString> subjectsToDeleteColnod;
|
|
QList<QString> tokensToDeleteColnod;
|
|
QList<QString> subjectsToDeleteDB;
|
|
QList<QString> tokensToDeleteDB;
|
|
|
|
};
|
|
|
|
#endif // DATAMANAGER_H
|