6#include "validator_p.h"
8#include <Cutelyst/application.h>
9#include <Cutelyst/context.h>
10#include <Cutelyst/request.h>
12#include <QLoggingCategory>
15using namespace Qt::Literals::StringLiterals;
17Q_LOGGING_CATEGORY(C_VALIDATOR,
"cutelyst.utils.validator", QtWarningMsg)
20 : d_ptr(new ValidatorPrivate(translationContext))
25 const char *translationContext)
26 : d_ptr(new ValidatorPrivate(validators, translationContext))
36 if (!d->validators.empty()) {
37 qDeleteAll(d->validators.begin(), d->validators.end());
38 d->validators.clear();
71 if (d->validators.empty()) {
72 qCWarning(C_VALIDATOR) <<
"Validation started with empty validator list.";
77 qCWarning(C_VALIDATOR) <<
"Validation started with empty parameters.";
81 const bool noTrimming = flags.testFlag(
NoTrimming);
86 v->setTrimBefore(
false);
91 if (singleResult.
extra.isValid()) {
99 if (stopOnFirstError) {
107 c->
setStash(u
"validationErrors"_s, QVariant::fromValue(result.
errors()));
109 if (!params.isEmpty()) {
110 auto i = params.constBegin();
111 while (i != params.constEnd()) {
112 if (!i.key().contains(u
"password"_s, Qt::CaseInsensitive)) {
126 v->setTranslationContext(d->translationContext);
127 d->validators.push_back(v);
The Cutelyst application.
void loadTranslations(const QString &filename, const QString &directory={}, const QString &prefix={}, const QString &suffix={})
void setStash(const QString &key, const QVariant &value)
ParamsMultiMap bodyParameters() const
ParamsMultiMap queryParameters() const
Provides information about performed validations.
void addExtra(const QString &field, const QVariant &extra)
void addValue(const QString &field, const QVariant &value)
QHash< QString, QStringList > errors() const noexcept
void addError(const QString &field, const QString &message)
QStringList errorStrings() const
Base class for all validator rules.
Validation processor for input data.
ValidatorResult validate(Context *c, ValidatorFlags flags=NoSpecialBehavior) const
Validator(const char *translationContext=nullptr)
void addValidator(ValidatorRule *v)
static void loadTranslations(Application *app)
QMultiMap< QString, QString > ParamsMultiMap
The Cutelyst namespace holds all public Cutelyst API.
Contains the result of a single input parameter validation.