5 #ifndef CUTELYST_REQUEST_H
6 #define CUTELYST_REQUEST_H
8 #include <QtCore/qobject.h>
9 #include <QtCore/qstringlist.h>
11 #include <Cutelyst/cutelyst_global.h>
12 #include <Cutelyst/paramsmultimap.h>
13 #include <Cutelyst/headers.h>
29 class CUTELYST_LIBRARY
Request final :
public QObject
32 Q_PROPERTY(QString hostname READ hostname CONSTANT)
33 Q_PROPERTY(quint16 port READ port CONSTANT)
34 Q_PROPERTY(QUrl uri READ uri CONSTANT)
35 Q_PROPERTY(QString base READ base CONSTANT)
36 Q_PROPERTY(QString path READ path CONSTANT)
37 Q_PROPERTY(QString match READ match CONSTANT)
38 Q_PROPERTY(QStringList arguments READ arguments CONSTANT)
39 Q_PROPERTY(QStringList args READ arguments CONSTANT)
40 Q_PROPERTY(
bool secure READ secure CONSTANT)
41 Q_PROPERTY(QVariant bodyData READ bodyData CONSTANT)
44 Q_PROPERTY(QString contentEncoding READ contentEncoding CONSTANT)
45 Q_PROPERTY(QString contentType READ contentType CONSTANT)
46 Q_PROPERTY(QString method READ method CONSTANT)
47 Q_PROPERTY(QString protocol READ protocol CONSTANT)
48 Q_PROPERTY(QString userAgent READ userAgent CONSTANT)
49 Q_PROPERTY(QString referer READ referer CONSTANT)
50 Q_PROPERTY(QString remoteUser READ remoteUser CONSTANT)
57 QHostAddress address()
const noexcept;
68 QString addressString()
const;
77 QString hostname()
const;
106 QString path()
const noexcept;
113 QString match()
const noexcept;
119 void setMatch(
const QString &match);
137 QStringList arguments()
const noexcept;
143 void setArguments(
const QStringList &arguments);
148 inline QStringList args()
const;
153 QStringList captures()
const noexcept;
159 void setCaptures(
const QStringList &captures);
168 bool secure()
const noexcept;
175 QIODevice *body()
const;
190 QVariant bodyData()
const;
196 QJsonDocument bodyJsonDocument()
const;
202 QJsonObject bodyJsonObject()
const;
208 QJsonArray bodyJsonArray()
const;
215 QVariantMap bodyParametersVariant()
const;
225 inline QString bodyParameter(
const QString &key,
const QString &defaultValue = {})
const;
232 QStringList bodyParameters(
const QString &key)
const;
242 inline QString bodyParam(
const QString &key,
const QString &defaultValue = {})
const;
249 inline QStringList bodyParams(
const QString &key)
const;
258 QString queryKeywords()
const;
265 QVariantMap queryParametersVariant()
const;
275 inline QString queryParameter(
const QString &key,
const QString &defaultValue = {})
const;
282 QStringList queryParameters(
const QString &key)
const;
292 inline QString queryParam(
const QString &key,
const QString &defaultValue = {})
const;
299 inline QStringList queryParams(
const QString &key)
const;
304 inline QString contentEncoding()
const;
309 inline QString contentType()
const;
314 QString cookie(
const QString &name)
const;
321 QStringList cookies(
const QString &name)
const;
331 inline QString header(
const QString &key)
const;
336 Headers headers()
const noexcept;
341 QString method()
const noexcept;
346 bool isPost()
const noexcept;
351 bool isGet()
const noexcept;
356 bool isHead()
const noexcept;
361 bool isPut()
const noexcept;
366 bool isPatch()
const noexcept;
371 bool isDelete()
const noexcept;
376 QString protocol()
const noexcept;
382 bool xhr()
const noexcept;
387 inline QString userAgent()
const;
392 inline QString referer()
const;
397 QString remoteUser()
const noexcept;
402 QVector<Upload *> uploads()
const;
408 QMultiMap<QString, Upload *> uploadsMap()
const;
413 Uploads uploads(
const QString &name)
const;
420 inline Upload *upload(
const QString &name)
const;
460 QUrl uriWith(
const ParamsMultiMap &args,
bool append =
false)
const;
465 Engine *engine()
const noexcept;
511 RequestPrivate *d_ptr;
521 inline QStringList Request::args()
const
522 {
return arguments(); }
533 inline QStringList Request::bodyParams(
const QString &key)
const
545 inline QStringList Request::queryParams(
const QString &key)
const
548 inline QString Request::contentEncoding()
const
551 inline QString Request::contentType()
const
557 inline QString Request::userAgent()
const
560 inline QString Request::referer()
const
The Cutelyst Application.
QMultiMap< QString, Upload * > uploadsMap() const
void webSocketBinaryMessage(const QByteArray &message, Cutelyst::Context *c)
Emitted when the websocket receives a binary message, this accounts for all binary frames till the la...
QString queryParameter(const QString &key, const QString &defaultValue={}) const
void webSocketBinaryFrame(const QByteArray &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a binary frame, this is usefull for parsing big chunks of data wi...
QString bodyParameter(const QString &key, const QString &defaultValue={}) const
QString header(const QString &key) const
ParamsMultiMap bodyParameters() const
void webSocketTextFrame(const QString &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a text frame, this is usefull for parsing big chunks of data with...
void webSocketPong(const QByteArray &payload, Cutelyst::Context *c)
Emitted when the websocket receives a pong frame, which might include a payload.
void webSocketClosed(quint16 closeCode, const QString &reason)
Emitted when the websocket receives a close frame, including a close code and a reason,...
void webSocketTextMessage(const QString &message, Cutelyst::Context *c)
Emitted when the websocket receives a text message, this accounts for all text frames till the last o...
Headers headers() const noexcept
ParamsMultiMap queryParameters() const
QString queryParam(const QString &key, const QString &defaultValue={}) const
QString bodyParam(const QString &key, const QString &defaultValue={}) const
Upload * upload(const QString &name) const
Cutelyst Upload handles file upload request
The Cutelyst namespace holds all public Cutelyst API.
QVector< Upload * > Uploads
QMultiMap< QString, QString > ParamsMultiMap