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> 17 Q_LOGGING_CATEGORY(C_STATUSMESSAGE,
"cutelyst.plugins.statusmessage", QtWarningMsg)
30 QString sessionPrefix = u
"status_msg"_s;
32 QString statusMsgStashKey = u
"status_msg"_s;
33 QString errorMsgStashKey = u
"error_msg"_s;
36 void StatusMessagePrivate::_q_postFork(
Application *app)
58 return d->sessionPrefix;
82 return d->statusMsgStashKey;
94 return d->errorMsgStashKey;
105 if (Q_UNLIKELY(!m_instance)) {
106 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
117 const QString statusKey = priv->sessionPrefix + u
"status" + token;
119 if (!statusValue.
isNull()) {
120 deleteKeys.
append(statusKey);
121 c->
setStash(priv->statusMsgStashKey, statusValue);
124 const QString errorKey = priv->sessionPrefix + u
"error" + token;
126 if (!errorValue.
isNull()) {
127 deleteKeys.
append(errorKey);
128 c->
setStash(priv->errorMsgStashKey, errorValue);
145 if (Q_UNLIKELY(!m_instance)) {
146 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
150 token = createToken();
158 if (Q_UNLIKELY(!m_instance)) {
159 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
164 const QString token = createToken();
166 map.
insert(priv->tokenParam, token);
173 if (Q_UNLIKELY(!m_instance)) {
174 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
178 token = createToken();
186 if (Q_UNLIKELY(!m_instance)) {
187 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
192 const QString token = createToken();
194 map.
insert(priv->tokenParam, token);
204 #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)
StatusMessage(Application *parent)
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)