#ifndef REQUESTMANAGER_H #define REQUESTMANAGER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "token.h" #include "response.h" class RequestManager : public QObject { Q_OBJECT public: RequestManager(); Response* getSubjects(); Response* getTokens(); Response* getTokenSubject(); Response* getSubjectsUpdated(uint64_t time); Response* getSubjectsDeleted(uint64_t time); Response* getTokensUpdated(uint64_t time); Response* getTokensDeleted(uint64_t time); Response* getAccessGroups(); Response* getAccessGroupsUpdated(uint64_t time); Response* getAccessGroupsDeleted(uint64_t time); Response* getAccessGroupMembership(); Response* getAccessGroupMembershipUpdated(uint64_t time); Response* getAccessGroupMembershipDeleted(uint64_t time); Response* setTokens(QList> tokens); Response* deleteTokens(QList ids); void login(QString endpoint, QString username, QString password); //I want it private, but unittest??? const QJsonDocument &getConfig() const {return config;} const QString &getResponse() const {return jsonResponse;} private: QNetworkReply* getRequest(QString endpoint); QNetworkReply* postRequest(QString endpoints, QByteArray json); Response* getRequestReturnLogic(QString endpoint); Response* postRequestReturnLogic(QString endpoint, QByteArray data); QString getFromJson(QString json, const QString &member); QString encryptedPassword(QString password); QString getLoginHeader(QString username, QString hash); void prepareAuthHeader(); QByteArray makeTimeStampJson(uint64_t time); QByteArray makeTokensJson(QList> tokens); QByteArray makeIdsJson(QList ids); private slots: void onSSLError(QNetworkReply *reply, const QList &errors); signals: void successLogin(); void responseReady(); private: QNetworkAccessManager* manager = nullptr; QJsonDocument config; QString authHeader; QString host = "https://192.168.1.3:8443"; //QString host = "http://localhost:8080"; QString password = "spaceti1"; QString user = "spaceti"; QString token; QString jsonResponse; bool loginStatus; }; #endif // REQUESTMANAGER_H