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>
16Q_LOGGING_CATEGORY(C_STATUSMESSAGE,
"cutelyst.plugins.statusmessage", QtWarningMsg)
29 QString sessionPrefix = QStringLiteral(
"status_msg");
30 QString tokenParam = QStringLiteral(
"mid");
31 QString statusMsgStashKey = QStringLiteral(
"status_msg");
32 QString errorMsgStashKey = QStringLiteral(
"error_msg");
35void StatusMessagePrivate::_q_postFork(
Application *app)
57 return d->sessionPrefix;
81 return d->statusMsgStashKey;
93 return d->errorMsgStashKey;
104 if (Q_UNLIKELY(!m_instance)) {
105 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
116 const QString statusKey = priv->sessionPrefix + u
"status" + token;
118 if (!statusValue.
isNull()) {
119 deleteKeys.
append(statusKey);
120 c->
setStash(priv->statusMsgStashKey, statusValue);
123 const QString errorKey = priv->sessionPrefix + u
"error" + token;
125 if (!errorValue.
isNull()) {
126 deleteKeys.
append(errorKey);
127 c->
setStash(priv->errorMsgStashKey, errorValue);
144 if (Q_UNLIKELY(!m_instance)) {
145 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
149 token = createToken();
157 if (Q_UNLIKELY(!m_instance)) {
158 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
163 const QString token = createToken();
165 map.
insert(priv->tokenParam, token);
172 if (Q_UNLIKELY(!m_instance)) {
173 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
177 token = createToken();
185 if (Q_UNLIKELY(!m_instance)) {
186 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
191 const QString token = createToken();
193 map.
insert(priv->tokenParam, token);
203#include "moc_statusmessage.cpp"
The Cutelyst application.
void postForked(Cutelyst::Application *app)
void setStash(const QString &key, const QVariant &value)
Base class for Cutelyst Plugins.
QString queryParam(const QString &key, const QString &defaultValue={}) const
static QVariant value(Context *c, const QString &key, const QVariant &defaultValue=QVariant())
static void setValue(Context *c, const QString &key, const QVariant &value)
static void deleteValues(Context *c, const QStringList &keys)
Manage status messages over multiple requests stored in the Session.
static QString error(Context *c, const QString &msg)
static void load(Context *c)
QString errorMgStashKey() const noexcept
void setTokenParam(const QString &tokenParam)
QString statusMsgStashKey() const noexcept
virtual bool setup(Application *app) override
static QString status(Context *c, const QString &msg)
static ParamsMultiMap statusQuery(Context *c, const QString &msg, ParamsMultiMap query={})
void setErrorMgStashKey(const QString &errorMgStashKey)
StatusMessage(Application *parent)
QString sessionPrefix() const noexcept
void setStatusMsgStashKey(const QString &statusMsgStashKey)
QString tokenParam() const noexcept
void setSessionPrefix(const QString &sessionPrefix)
virtual ~StatusMessage() override
static ParamsMultiMap errorQuery(Context *c, const QString &msg, ParamsMultiMap query={})
The Cutelyst namespace holds all public Cutelyst API.
void append(QList::parameter_type value)
bool isEmpty() const const
QMultiMap::iterator insert(QMultiMap::const_iterator pos, const Key &key, const T &value)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QRandomGenerator * global()
bool isEmpty() const const
QString number(double n, char format, int precision)
QString rightJustified(qsizetype width, QChar fill, bool truncate) const const
bool isNull() const const