cutelyst
4.5.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
|
Checks if a date, time or datetime is after a comparison value. More...
#include <Cutelyst/Plugins/Utils/validatorafter.h>
Public Member Functions | |
ValidatorAfter (const QString &field, const QVariant &comparison, const QString &timeZone=QString(), const char *inputFormat=nullptr, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString()) | |
~ValidatorAfter () 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=QVariant()) const override |
QString | genericValidationDataError (Context *c, const QVariant &errorData=QVariant()) const override |
QString | genericValidationError (Context *c, const QVariant &errorData=QVariant()) const override |
ValidatorReturnType | validate (Context *c, const ParamsMultiMap ¶ms) 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 ¶ms) const |
This will check if the date, time or datetime in the input field is earlier than the comparison value set in the constructor. It depends on the comparison value how the input data is handled. If the comparison value is a QDateTime, the input data will be converted into a QDateTime to compare the both values. The same happens for QTime and QDate. It is also possible to use a QString as comparison value. Using a QString makes it possible to compare the input field against a value from the stash.
To specify a time zone that should be used for the input field - and the comparison input field if one is used, give either the IANA time zone ID name to the timeZone argument of the constructor or the name of an input field or stash key that contains the ID name. It will then be first tried to create a valid QTimeZone from the timeZone string, if that fails it will first try to get the time zone from the input parameters and if there is no key with that name, trying it with the stash. Stash or input parameter can either contain a valid IANA time zone ID or the offset from UTC in seconds.
If the input data can not be parsed into a comparable format, the validation fails and ValidatorRule::parsingError() will return the error string. It will also fail if the comparison value is not of type QDate, QTime, QDateTime or QString. Use inputFormat parameter of the constructor to set a custom input format. If that fails or if there is no custom inputFormat set, it will try to parse the date based on standard formats in the following order: Context locale's toDate() with QLocale::ShortFormat and QLocale::LongFormat, Qt::ISODate, Qt::RFC2822Date and Qt::TextDate
Definition at line 94 of file validatorafter.h.
ValidatorAfter::ValidatorAfter | ( | const QString & | field, |
const QVariant & | comparison, | ||
const QString & | timeZone = QString() , |
||
const char * | inputFormat = nullptr , |
||
const ValidatorMessages & | messages = ValidatorMessages() , |
||
const QString & | defValKey = QString() |
||
) |
Constructs a new ValidatorAfter object with the fiven parameters.
field | Name of the input field to validate. |
comparison | The value or stash key to compare against. |
timeZone | IANA time zone ID or stash key containing the ID |
inputFormat | Optional input format for input data parsing, can be translatable. |
messages | Custom error message if validation fails. |
defValKey | Stash key containing a default value if input field is empty. This value will NOT be validated. |
Definition at line 13 of file validatorafter.cpp.
|
overridedefault |
Destroys the ValidatorAfter object.
|
overrideprotectedvirtual |
Returns a generic error if the input value could not be parsed.
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 190 of file validatorafter.cpp.
References QString::arg(), QString::isEmpty(), Cutelyst::ValidatorRule::label(), QMetaType::QDate, QMetaType::QDateTime, QMetaType::QTime, Cutelyst::Context::qtTrId(), Cutelyst::Context::translate(), QVariant::userType(), and Cutelyst::ValidatorRule::validationDataError().
|
overrideprotectedvirtual |
Returns a generic error if comparison data was invalid.
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 175 of file validatorafter.cpp.
References QString::arg(), QString::isEmpty(), Cutelyst::ValidatorRule::label(), and Cutelyst::Context::qtTrId().
|
overrideprotectedvirtual |
Returns a generic error if validation failed.
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 124 of file validatorafter.cpp.
References QString::arg(), QString::isEmpty(), Cutelyst::ValidatorRule::label(), Cutelyst::Context::locale(), QMetaType::QDate, QMetaType::QDateTime, QMetaType::QTime, Cutelyst::Context::qtTrId(), QLocale::ShortFormat, QVariant::toDate(), QVariant::toDateTime(), QLocale::toString(), QVariant::toTime(), QVariant::userType(), and Cutelyst::ValidatorRule::validationDataError().
|
overrideprotectedvirtual |
Performs the validation on the input params and returns the result.
If validation succeeds, ValidatorReturnType::value will contain the converted input parameter value as QDateTime, QDate or QTime, accoring to the type of the comparison value.
Implements Cutelyst::ValidatorRule.
Definition at line 26 of file validatorafter.cpp.
References Cutelyst::ValidatorRule::debugString(), Cutelyst::ValidatorRule::defaultValue(), Cutelyst::ValidatorReturnType::errorMessage, QString::isEmpty(), QDateTime::isValid(), QTime::isValid(), QDate::isValid(), Cutelyst::ValidatorRule::parsingError(), QMetaType::QDate, QMetaType::QDateTime, QMetaType::QString, QMetaType::QTime, QVariant::setValue(), QVariant::toDate(), QVariant::toDateTime(), QVariant::toTime(), QVariant::userType(), Cutelyst::ValidatorRule::validationDataError(), Cutelyst::ValidatorRule::validationError(), Cutelyst::ValidatorReturnType::value, and Cutelyst::ValidatorRule::value().