6#include "validatorcharnotallowed_p.h"
11 const QString &forbiddenChars,
13 const QString &defValKey)
14 :
ValidatorRule(*new ValidatorCharNotAllowedPrivate(
field, forbiddenChars, messages, defValKey))
21 const QString &forbiddenChars)
23 auto it = std::ranges::find_if(forbiddenChars, [&
value](
const QChar &forbiddenChar) {
24 return value.contains(forbiddenChar);
27 if (it != forbiddenChars.end()) {
41 const QString v =
value(params);
43 if (Q_LIKELY(!d->forbiddenChars.isEmpty())) {
45 if (Q_LIKELY(!foundChar.has_value())) {
46 result.
value.setValue(v);
51 qCWarning(C_VALIDATOR).noquote() <<
debugString(c) <<
"Empty validation data";
70 const QChar foundChar = errorData.toChar();
72 const QString _label =
label(c);
73 if (_label.isEmpty()) {
78 return c->
qtTrId(
"cutelyst-valcharnotallowed-genvalerr")
79 .arg(d->forbiddenChars, QString(foundChar));
85 return c->
qtTrId(
"cutelyst-valcharnotallowed-genvalerr-label")
86 .arg(_label, d->forbiddenChars, QString(foundChar));
91 const QVariant &errorData)
const
94 const QString _label =
label(c);
95 if (_label.isEmpty()) {
97 return c->
qtTrId(
"cutelyst-valcharnotallowed-genvaldataerr");
100 return c->
qtTrId(
"cutelyst-valcharnotallowed-genvaldataerr-label").arg(_label);
QString qtTrId(const char *id, int n=-1) const
QString genericValidationDataError(Context *c, const QVariant &errorData=QVariant()) const override
QString genericValidationError(Context *c, const QVariant &errorData=QVariant()) const override
void validateCb(Context *c, const ParamsMultiMap ¶ms, ValidatorRtFn cb) const override
ValidatorCharNotAllowed(const QString &field, const QString &forbiddenChars, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey={})
~ValidatorCharNotAllowed() override
QString field() const noexcept
QString validationError(Context *c, const QVariant &errorData={}) const
QString label(const Context *c) const
QString debugString(const Context *c) const
ValidatorRule(const QString &field, const ValidatorMessages &messages={}, const QString &defValKey={}, QByteArrayView validatorName=nullptr)
QString validationDataError(Context *c, const QVariant &errorData={}) const
std::function< void(ValidatorReturnType &&result)> ValidatorRtFn
Void callback function for validator rules that processes the ValidatorReturnType.
void defaultValue(Context *c, ValidatorReturnType *result) const
QString value(const ParamsMultiMap ¶ms) const
QMultiMap< QString, QString > ParamsMultiMap
static std::optional< QChar > validate(const QString &value, const QString &forbiddenChars)
Returns true if value does not contain any of the forbideden characters.
The Cutelyst namespace holds all public Cutelyst API.
Stores custom error messages and the input field label.
Contains the result of a single input parameter validation.