mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 13:00:41 +02:00
98 lines
2.7 KiB
C++
98 lines
2.7 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 <QJsonArray>
|
|
#include <QJsonParseError>
|
|
#include <QFile>
|
|
#include <QString>
|
|
#include <QMultiMap>
|
|
#include <QPointer>
|
|
#include <QDir>
|
|
#include <QSslError>
|
|
#include <QPair>
|
|
|
|
|
|
#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<QPointer<Token>> tokens);
|
|
Response* deleteTokens(QList<QString> 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<QPointer<Token>> tokens);
|
|
QByteArray makeIdsJson(QList<QString> ids);
|
|
|
|
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
|