18 #ifndef CUTELYST_REQUEST_H
19 #define CUTELYST_REQUEST_H
21 #include <QtCore/qobject.h>
22 #include <QtCore/qstringlist.h>
24 #include <Cutelyst/cutelyst_global.h>
25 #include <Cutelyst/paramsmultimap.h>
26 #include <Cutelyst/headers.h>
38 typedef QVector<Upload *>
Uploads;
42 class CUTELYST_LIBRARY
Request final :
public QObject
45 Q_PROPERTY(QString hostname READ hostname CONSTANT)
46 Q_PROPERTY(quint16 port READ port CONSTANT)
47 Q_PROPERTY(QUrl uri READ uri CONSTANT)
48 Q_PROPERTY(QString base READ base CONSTANT)
49 Q_PROPERTY(QString path READ path CONSTANT)
50 Q_PROPERTY(QString match READ match CONSTANT)
51 Q_PROPERTY(QStringList arguments READ arguments CONSTANT)
52 Q_PROPERTY(QStringList args READ arguments CONSTANT)
53 Q_PROPERTY(
bool secure READ secure CONSTANT)
54 Q_PROPERTY(QVariant bodyData READ bodyData CONSTANT)
57 Q_PROPERTY(QVariant headers READ headers() CONSTANT)
58 Q_PROPERTY(QString contentEncoding READ contentEncoding CONSTANT)
59 Q_PROPERTY(QString contentType READ contentType CONSTANT)
60 Q_PROPERTY(QString method READ method CONSTANT)
61 Q_PROPERTY(QString protocol READ protocol CONSTANT)
62 Q_PROPERTY(QString userAgent READ userAgent CONSTANT)
63 Q_PROPERTY(QString referer READ referer CONSTANT)
64 Q_PROPERTY(QString remoteUser READ remoteUser CONSTANT)
71 QHostAddress address()
const;
82 QString addressString()
const;
91 QString hostname()
const;
113 QString base()
const;
120 QString path()
const;
127 QString match()
const;
133 void setMatch(
const QString &match);
151 QStringList arguments()
const;
157 void setArguments(
const QStringList &arguments);
162 inline QStringList args()
const;
167 QStringList captures()
const;
173 void setCaptures(
const QStringList &captures);
189 QIODevice *body()
const;
204 QVariant bodyData()
const;
210 QJsonDocument bodyJsonDocument()
const;
216 QJsonObject bodyJsonObject()
const;
222 QJsonArray bodyJsonArray()
const;
229 QVariantMap bodyParametersVariant()
const;
239 inline QString bodyParameter(
const QString &key,
const QString &defaultValue = QString())
const;
246 QStringList bodyParameters(
const QString &key)
const;
256 inline QString bodyParam(
const QString &key,
const QString &defaultValue = QString())
const;
263 inline QStringList bodyParams(
const QString &key)
const;
272 QString queryKeywords()
const;
279 QVariantMap queryParametersVariant()
const;
289 inline QString queryParameter(
const QString &key,
const QString &defaultValue = QString())
const;
296 QStringList queryParameters(
const QString &key)
const;
306 inline QString queryParam(
const QString &key,
const QString &defaultValue = QString())
const;
313 inline QStringList queryParams(
const QString &key)
const;
318 inline QString contentEncoding()
const;
323 inline QString contentType()
const;
328 QString cookie(
const QString &name)
const;
335 QStringList cookies(
const QString &name)
const;
345 inline QString header(
const QString &key)
const;
355 QString method()
const;
380 bool isPatch()
const;
385 bool isDelete()
const;
390 QString protocol()
const;
401 inline QString userAgent()
const;
406 inline QString referer()
const;
411 QString remoteUser()
const;
416 QVector<Upload *> uploads()
const;
422 QMap<QString, Upload *> uploadsMap()
const;
427 Uploads uploads(
const QString &name)
const;
434 inline Upload *upload(
const QString &name)
const;
474 QUrl uriWith(
const ParamsMultiMap &args,
bool append =
false)
const;
491 void webSocketTextFrame(
const QString &message,
bool isLastFrame,
Cutelyst::Context *c);
502 void webSocketBinaryFrame(
const QByteArray &message,
bool isLastFrame,
Cutelyst::Context *c);
522 void webSocketClosed(quint16 closeCode,
const QString &reason);
525 RequestPrivate *d_ptr;
535 inline QStringList Request::args()
const
536 {
return arguments(); }
547 inline QStringList Request::bodyParams(
const QString &key)
const
559 inline QStringList Request::queryParams(
const QString &key)
const
562 inline QString Request::contentEncoding()
const
563 {
return headers().contentEncoding(); }
565 inline QString Request::contentType()
const
566 {
return headers().contentType(); }
569 {
return headers().header(key); }
571 inline QString Request::userAgent()
const
572 {
return headers().userAgent(); }
574 inline QString Request::referer()
const
575 {
return headers().referer(); }
582 #endif // CUTELYST_REQUEST_H