colnod-connector/src/colnod/requestmanager.h
2019-10-10 14:09:36 +02:00

86 lines
2.2 KiB
C++

#ifndef REQUESTMANAGER_H
#define REQUESTMANAGER_H
#include <QObject>
#include <QNetworkReply>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QJsonDocument>
#include <QJsonObject>
#include <qcoreapplication.h>
#include <qnetworkreply.h>
#include <QByteArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include <QFile>
#include <QString>
#include <QMultiMap>
#include <QPointer>
#include <QDir>
#include <QSslError>
#include "response.h"
class RequestManager : public QObject
{
Q_OBJECT
public:
RequestManager();
Response* getSubjects();
Response* getTokens();
Response* getTokenSubject();
Response* getSubjectsUpdated(uint64_t);
Response* getSubjectsDeleted(uint64_t);
Response* getTokensUpdated(uint64_t);
Response* getTokensDeleted(uint64_t);
Response* getAccessGroups();
Response* getAccessGroupsUpdated(uint64_t);
Response* getAccessGroupsDeleted(uint64_t);
Response* getAccessGroupMembership();
Response* getAccessGroupMembershipUpdated(uint64_t);
Response* getAccessGroupMembershipDeleted(uint64_t);
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);
QString getFromJson(QString json, const QString &member);
QString encryptedPassword(QString password);
QString getLoginHeader(QString username, QString hash);
void prepareAuthHeader();
private slots:
void onSSLError(QNetworkReply *reply, const QList<QSslError> &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