Files
GenericQtClientCore/network/servercommunicator.h

47 lines
1.2 KiB
C++

#ifndef SERVERCOMMUNICATOR_H
#define SERVERCOMMUNICATOR_H
#include <QNetworkAccessManager>
#include <QNetworkRequestFactory>
#include <QObject>
#include <QRestAccessManager>
class ServerCommunicator : public QObject {
Q_OBJECT
public:
explicit ServerCommunicator(QObject* parent = nullptr);
bool sslSupported();
QUrl url() const;
void setUrl(const QUrl& url);
void setServerConfiguration(const QString url, const QString email, const QString password);
public slots:
void fetchItems();
void postItems(const QByteArray& jsonData);
void deleteItem(const QString& id);
signals:
void urlChanged();
void itemsFetched(const QByteArray jsonDoc);
void itemsFetchFailure(const QString errorString);
void postRequestSuccessful(const QByteArray responseData);
void postRequestFailure(const QString errorString);
void deleteRequestSuccessful(const QByteArray responseData);
void deleteRequestFailure(const QString errorString);
private:
QNetworkAccessManager m_netManager;
std::shared_ptr<QRestAccessManager> m_restManager;
std::shared_ptr<QNetworkRequestFactory> m_serviceApi;
QString m_email;
QString m_password;
// QString m_authToken;
};
#endif // SERVERCOMMUNICATOR_H