Skip to content
Snippets Groups Projects
restrequest.h 1.32 KiB
Newer Older
Armin Felder's avatar
Armin Felder committed
#ifndef RESTREQUEST_H
#define RESTREQUEST_H
#include <QJsonObject>
#include <functional>
class RestApi;
class QNetworkReply;
typedef std::function<void (QNetworkReply *,QJsonObject pData, RestApi*)> RestRequestCallback;

class RestRequest
{
public:
    enum class methods {
         GET,
         POST
     };
    RestRequest(QByteArray,QString, methods,RestRequestCallback);
    RestRequest(QByteArray,QString, methods,RestRequestCallback pSuccess, RestRequestCallback pError);
    methods getMethod() const;
    void setMethod(const methods &pValue);

    QString getPath() const;
    void setPath(const QString &pValue);

    QByteArray getContent() const;
    void setContent(const QByteArray &pValue);

    RestRequestCallback getSuccess() const;
    void setSuccess(const RestRequestCallback &pValue);

    RestRequestCallback getError() const;
    void setError(const RestRequestCallback &pValue);

    QString getMimeType() const;
    void setMimeType(const QString &pValue);

    bool isRawData();

    bool getAbsolutePath() const;

protected:
    RestRequest();
    QByteArray mContent;
    QString mPath;
    methods mMethod;
    RestRequestCallback mSuccess = nullptr;
    RestRequestCallback mError = nullptr;
    QString mMimeType = "text/plain";
    bool mAbsolutePath = false;
    bool mRawData = false;
};

#endif // RESTREQUEST_H