5 #include "statusmessage.h" 7 #include <Cutelyst/Application> 8 #include <Cutelyst/Plugins/Session/session.h> 10 #include <QRandomGenerator> 11 #include <QtCore/QDateTime> 12 #include <QtCore/QLoggingCategory> 16 Q_LOGGING_CATEGORY(C_STATUSMESSAGE,
"cutelyst.plugins.statusmessage", QtWarningMsg)
27 QString sessionPrefix = QStringLiteral(
"status_msg");
28 QString tokenParam = QStringLiteral(
"mid");
29 QString statusMsgStashKey = QStringLiteral(
"status_msg");
30 QString errorMsgStashKey = QStringLiteral(
"error_msg");
33 void StatusMessagePrivate::_q_postFork(
Application *app)
55 return d->sessionPrefix;
79 return d->statusMsgStashKey;
91 return d->errorMsgStashKey;
102 if (Q_UNLIKELY(!m_instance)) {
103 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
114 const QString statusKey = priv->sessionPrefix + u
"status" + token;
116 if (!statusValue.
isNull()) {
117 deleteKeys.
append(statusKey);
118 c->
setStash(priv->statusMsgStashKey, statusValue);
121 const QString errorKey = priv->sessionPrefix + u
"error" + token;
123 if (!errorValue.
isNull()) {
124 deleteKeys.
append(errorKey);
125 c->
setStash(priv->errorMsgStashKey, errorValue);
142 if (Q_UNLIKELY(!m_instance)) {
143 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
147 token = createToken();
155 if (Q_UNLIKELY(!m_instance)) {
156 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
161 const QString token = createToken();
163 map.
insert(priv->tokenParam, token);
170 if (Q_UNLIKELY(!m_instance)) {
171 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
175 token = createToken();
183 if (Q_UNLIKELY(!m_instance)) {
184 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
189 const QString token = createToken();
191 map.
insert(priv->tokenParam, token);
201 #include "moc_statusmessage.cpp" void setTokenParam(const QString &tokenParam)
static QString status(Context *c, const QString &msg)
void postForked(Cutelyst::Application *app)
static ParamsMultiMap statusQuery(Context *c, const QString &msg, ParamsMultiMap query={})
static ParamsMultiMap errorQuery(Context *c, const QString &msg, ParamsMultiMap query={})
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
virtual ~StatusMessage() override
Manage status messages over multiple requests stored in the Session.
void setStash(const QString &key, const QVariant &value)
QString queryParam(const QString &key, const QString &defaultValue={}) const
QString tokenParam() const noexcept
QString sessionPrefix() const noexcept
static void load(Context *c)
QString number(double n, char format, int precision)
bool isNull() const const
QString rightJustified(qsizetype width, QChar fill, bool truncate) const const
bool isEmpty() const const
bool isEmpty() const const
static void setValue(Context *c, const QString &key, const QVariant &value)
iterator insert(const Key &key, const T &value)
The Cutelyst namespace holds all public Cutelyst API.
void setStatusMsgStashKey(const QString &statusMsgStashKey)
QString statusMsgStashKey() const noexcept
virtual bool setup(Application *app) override
QString errorMgStashKey() const noexcept
void append(QList< T > &&value)
static void deleteValues(Context *c, const QStringList &keys)
static QVariant value(Context *c, const QString &key, const QVariant &defaultValue=QVariant())
Base class for Cutelyst Plugins.
The Cutelyst application.
static QString error(Context *c, const QString &msg)
void setErrorMgStashKey(const QString &errorMgStashKey)
QRandomGenerator * global()
void setSessionPrefix(const QString &sessionPrefix)