cutelyst  4.4.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Cutelyst::ValidatorBetween Class Reference

Checks if a value or text length is between a minimum and maximum value. More...

#include <Cutelyst/Plugins/Utils/validatorbetween.h>

Inheritance diagram for Cutelyst::ValidatorBetween:

Public Member Functions

 ValidatorBetween (const QString &field, QMetaType::Type type, const QVariant &min, const QVariant &max, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString())
 
 ~ValidatorBetween () override
 
- Public Member Functions inherited from Cutelyst::ValidatorRule
 ValidatorRule (const QString &field, const ValidatorMessages &messages={}, const QString &defValKey={}, QByteArrayView validatorName=nullptr)
 
virtual ~ValidatorRule ()
 Deconstructs the ValidatorRule.
 

Protected Member Functions

QString genericParsingError (Context *c, const QVariant &errorData) const override
 
QString genericValidationDataError (Context *c, const QVariant &errorData) const override
 
QString genericValidationError (Context *c, const QVariant &errorData=QVariant()) const override
 
ValidatorReturnType validate (Context *c, const ParamsMultiMap &params) const override
 
- Protected Member Functions inherited from Cutelyst::ValidatorRule
 ValidatorRule (ValidatorRulePrivate &dd)
 
QString debugString (Context *c) const
 
void defaultValue (Context *c, ValidatorReturnType *result) const
 
QString field () const noexcept
 
QString label (Context *c) const
 
QString parsingError (Context *c, const QVariant &errorData={}) const
 
bool trimBefore () const noexcept
 
QString validationDataError (Context *c, const QVariant &errorData={}) const
 
QString validationError (Context *c, const QVariant &errorData={}) const
 
QString value (const ParamsMultiMap &params) const
 

Detailed Description

This validator has the mandatory extra parameters type, min and max. type specifies the type to validate against, it can be either a QMetaType::Type for a number value (Int, UInt, Float, etc.) or QString, that are used as base types. You can compare against any integer, floating point or string type. If you validate a string, it’s length will be checked if it is between min and max values.

If you set a string to the min and/or max values, this will neither be interpreted as a number nor as string length, but will be used to get the comparison number value from the stash.

Note
Conversion of numeric input values is performed in the 'C' locale.
Unless validation is started with NoTrimming, whitespaces will be removed from the beginning and the end of the input value before validation. If the field's value is empty or if the field is missing in the input data, the validation will succeed without performing the validation itself. Use one of the required validators to require the field to be present and not empty.
Example
Validator v({new ValidatorBetween(QStringLiteral("username"), QMetaType::QString, 3, 255))});
ValidatorBetween(const QString &field, QMetaType::Type type, const QVariant &min, const QVariant &max, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString())
Return type
On success, ValidatorReturnType::value will contain a value of the type specified in the constructor.
See also
Validator for general usage of validators.
ValidatorMin, ValidatorMax, ValidatorSize

Definition at line 50 of file validatorbetween.h.

Constructor & Destructor Documentation

◆ ValidatorBetween()

ValidatorBetween::ValidatorBetween ( const QString field,
QMetaType::Type  type,
const QVariant min,
const QVariant max,
const ValidatorMessages messages = ValidatorMessages(),
const QString defValKey = QString() 
)

Constructs a new ValidatorBetween object with the given parameters.

Parameters
fieldName of the input field to validate.
typeThe type to compare. Can be either a QMetaType::Type for a number value or QMetaType::QString.
minMinimum value. Will be converted into comparable value. If it is a QString, it will try to get the comparison value from another params field or the stash.
maxMaximum value. Will be converted into comparable value. If it is a QString, it will try to get the comparison value from another params field or the stash.
messagesCustom error message if validation fails.
defValKeyStash key containing a default value if input field is empty. This value will NOT be validated.

Definition at line 12 of file validatorbetween.cpp.

◆ ~ValidatorBetween()

ValidatorBetween::~ValidatorBetween ( )
overridedefault

Destroys the ValidatorBetween object.

Member Function Documentation

◆ genericParsingError()

QString ValidatorBetween::genericParsingError ( Context c,
const QVariant errorData 
) const
overrideprotectedvirtual

Returns a generic error message for input value parsing errors.

Reimplemented from Cutelyst::ValidatorRule.

Definition at line 331 of file validatorbetween.cpp.

References QString::arg(), QMetaType::Double, QMetaType::Float, QString::isEmpty(), Cutelyst::ValidatorRule::label(), and Cutelyst::Context::qtTrId().

◆ genericValidationDataError()

QString ValidatorBetween::genericValidationDataError ( Context c,
const QVariant errorData 
) const
overrideprotectedvirtual

Returns a generic error message for validation data errors.

Reimplemented from Cutelyst::ValidatorRule.

Definition at line 283 of file validatorbetween.cpp.

References QString::arg(), QString::fromLatin1(), QString::isEmpty(), Cutelyst::ValidatorRule::label(), QMetaType::name(), Cutelyst::Context::qtTrId(), and QVariant::toInt().

◆ genericValidationError()

◆ validate()