6#include "validatordigitsbetween_p.h"
14 const QString &defValKey)
15 :
ValidatorRule(*new ValidatorDigitsBetweenPrivate(
field, min, max, messages, defValKey))
27 const QString v =
value(params);
31 qsizetype _min = ValidatorDigitsBetweenPrivate::extractSizeType(c, params, d->min, &ok);
34 qCWarning(C_VALIDATOR).noquote()
35 <<
debugString(c) <<
"Invalid minimum length comparison data";
38 _max = ValidatorDigitsBetweenPrivate::extractSizeType(c, params, d->max, &ok);
41 qCWarning(C_VALIDATOR).noquote()
42 <<
debugString(c) <<
"Invalid maximum length comparison data";
49 qCWarning(C_VALIDATOR).noquote() <<
debugString(c) <<
"Minimum comparison length" << _min
50 <<
"is larger than" <<
"maximum comparison length" << _max;
57 result.
value.setValue(v);
60 qCDebug(C_VALIDATOR).noquote()
61 <<
debugString(c) <<
"Length of" << v.length() <<
"is not between" << _min <<
"and"
62 << _max <<
"and/or input value contains non-digit characters";
81 bool allDigits = std::ranges::all_of(
value, [](
const QChar &ch) {
return ch.isDigit(); });
83 return allDigits && (
value.length() >= min) && (
value.length() <= max);
88 const QVariantList list = errorData.toList();
89 const QString min = list.at(0).toString();
90 const QString max = list.at(1).toString();
91 const QString _label =
label(c);
93 if (_label.isEmpty()) {
95 return c->
qtTrId(
"cutelyst-valdigitsbetween-genvalerr").arg(min, max);
99 return c->
qtTrId(
"cutelyst-valdigitsbetween-genvalerr-label").arg(_label, min, max);
QString qtTrId(const char *id, int n=-1) const
void validateCb(Context *c, const ParamsMultiMap ¶ms, ValidatorRtFn cb) const override
~ValidatorDigitsBetween() override
QString genericValidationError(Context *c, const QVariant &errorData=QVariant()) const override
ValidatorDigitsBetween(const QString &field, const QVariant &min, const QVariant &max, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey={})
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 bool validate(const QString &value, int min, int max)
Returns true if value only contains digits and has a length between min and max.
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.