#pragma once #include #include "token.h" #include "subject.h" // constants for output design constexpr auto equals = "=================================================================="; constexpr auto underscore = "__________________________________________________________________"; constexpr auto dash = "------------------------------------------------------------------"; constexpr auto tab = "\t"; class Message { public: static QString massageTemplate(const QString& action, const QString& item, const QString& source, const QString& itemInfo) { return action + " " + item + " in " + source + ", " + item + ": '" + itemInfo + "'"; } }; class Data { friend class ColnodAPI; friend class DatabaseAPI; public: Data() = default; /** * @brief Fill data with tokens from JSON * @param data Response data in JSON format * @return True if success otherwise False */ bool loadTokensFromJson(const QByteArray &data); /** * @brief Fill data with subjects from JSON * @param data Response data in JSON format * @return True if success otherwise False */ bool loadSubjectsFormJson(const QByteArray &data); QHash> updatedTokens; QList deletedTokens; QHash> updatedSubjects; QList deletedSubjects; /** * @brief Helper function for check if all endpoints calls are processed * @return Returns acctual amout of processed endpoints */ int incrementCounter(); private: int counter = 0; }; struct PreparedData { public: PreparedData() = default; PreparedData(const std::shared_ptr &database, const std::shared_ptr &colnod) :databaseData(database), colnodData(colnod) { } // TODO: make unique_ptr ( neeed because of ColnodAPI ) std::shared_ptr databaseData; std::shared_ptr colnodData; };