18 #include "statusmessage.h"
20 #include <Cutelyst/Application>
21 #include <Cutelyst/Plugins/Session/session.h>
23 #include <QtCore/QDateTime>
24 #include <QtCore/QLoggingCategory>
28 Q_LOGGING_CATEGORY(C_STATUSMESSAGE,
"cutelyst.plugins.statusmessage", QtWarningMsg)
39 QString sessionPrefix = QStringLiteral(
"status_msg");
40 QString tokenParam = QStringLiteral(
"mid");
41 QString statusMsgStashKey = QStringLiteral(
"status_msg");
42 QString errorMsgStashKey = QStringLiteral(
"error_msg");
45 void StatusMessagePrivate::_q_postFork(
Application *app)
54 qsrand(QDateTime::currentMSecsSinceEpoch());
58 StatusMessage::~StatusMessage()
66 return d->sessionPrefix;
90 return d->statusMsgStashKey;
102 return d->errorMsgStashKey;
113 if (Q_UNLIKELY(!m_instance)) {
114 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
119 const QString token = c->request()->
queryParam(priv->tokenParam);
120 if (token.isEmpty()) {
124 QStringList deleteKeys;
125 const QString statusKey = priv->sessionPrefix + QLatin1String(
"status") + token;
127 if (!statusValue.isNull()) {
128 deleteKeys.append(statusKey);
129 c->
setStash(priv->statusMsgStashKey, statusValue);
132 const QString errorKey = priv->sessionPrefix + QLatin1String(
"error") + token;
134 if (!errorValue.isNull()) {
135 deleteKeys.append(errorKey);
136 c->
setStash(priv->errorMsgStashKey, errorValue);
139 if (!deleteKeys.isEmpty()) {
144 inline QString createToken()
146 return QString::number(qrand() % 99999999).rightJustified(8, QLatin1Char(
'0'),
true);
152 if (Q_UNLIKELY(!m_instance)) {
153 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
157 token = createToken();
165 if (Q_UNLIKELY(!m_instance)) {
166 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
171 const QString token = createToken();
173 map.insert(priv->tokenParam, token);
180 if (Q_UNLIKELY(!m_instance)) {
181 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
185 token = createToken();
193 if (Q_UNLIKELY(!m_instance)) {
194 qCCritical(C_STATUSMESSAGE,
"StatusMessage plugin not registered");
199 const QString token = createToken();
200 Session::setValue(c, priv->sessionPrefix + QLatin1String(
"status") + token, msg);
201 map.insert(priv->tokenParam, token);
211 #include "moc_statusmessage.cpp"