47 lines
1.2 KiB
C++
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
|