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

Checks if the input data is a valid datetime. More...

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

Inheritance diagram for Cutelyst::ValidatorDateTime:

Public Member Functions

 ValidatorDateTime (const QString &field, const QString &timeZone, const char *inputFormat=nullptr, const ValidatorMessages &messages={}, const QString &defValKey={})
 ~ValidatorDateTime () 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 genericValidationError (Context *c, const QVariant &errorData=QVariant()) const override
 Returns a generic error if validation failed.
ValidatorReturnType validate (Context *c, const ParamsMultiMap &params) const override
void validateCb (Context *c, const ParamsMultiMap &params, ValidatorRtFn cb) const override
Protected Member Functions inherited from Cutelyst::ValidatorRule
 ValidatorRule (ValidatorRulePrivate &dd)
QString debugString (const Context *c) const
void defaultValue (Context *c, ValidatorReturnType *result) const
void defaultValue (Context *c, ValidatorRtFn cb) const
QString field () const noexcept
virtual QString genericParsingError (Context *c, const QVariant &errorData={}) const
virtual QString genericValidationDataError (Context *c, const QVariant &errorData={}) const
QString label (const 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

Additional Inherited Members

Detailed Description

This validator checks if the input field can be parsed into a QDateTime, it will check the parsing ability and will convert the input data into a QDateTime. If a custom inputFormat is given, the validator will at first try to parse the datetime according to that format. If that fails or if there is no custom inputFormat set, it will try to parse the date and time based on standard formats in the following order: Context locale's toDateTime() with QLocale::ShortFormat and QLocale::LongFormat, Qt::ISODate, Qt::RFC2822Date, Qt::TextDate

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, if that fails it will first try to get the time zone from the input parameters and if there is no key with the 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.

Note
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.
Return type
On success, ValidatorReturnType::value will contain a QDateTime.
See also
Validator for general usage of validators.
ValidatorDate, ValidatorTime

Definition at line 49 of file validatordatetime.h.

Constructor & Destructor Documentation

◆ ValidatorDateTime()

ValidatorDateTime::ValidatorDateTime ( const QString & field,
const QString & timeZone,
const char * inputFormat = nullptr,
const ValidatorMessages & messages = {},
const QString & defValKey = {} )
explicit

Constructs a new ValidatorDataTime object with the given parameters.

Parameters
fieldName of the input field to validate.
timeZoneIANA time zone ID, name of a input field containing the ID or stash key containing the ID.
inputFormatOptional input format for input data parsing, can be translatable.
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 validatordatetime.cpp.

References Cutelyst::ValidatorRule::ValidatorRule(), and Cutelyst::ValidatorRule::field().

Referenced by ~ValidatorDateTime(), genericValidationError(), and validate().

◆ ~ValidatorDateTime()

ValidatorDateTime::~ValidatorDateTime ( )
overridedefault

Destroys the ValidatorDateTime object.

References ValidatorDateTime(), genericValidationError(), validate(), and validateCb().

Member Function Documentation

◆ genericValidationError()

QString ValidatorDateTime::genericValidationError ( Context * c,
const QVariant & errorData = QVariant() ) const
overrideprotectedvirtual

◆ validate()

ValidatorReturnType ValidatorDateTime::validate ( Context * c,
const ParamsMultiMap & params ) const
overrideprotectedvirtual

◆ validateCb()

void ValidatorDateTime::validateCb ( Context * c,
const ParamsMultiMap & params,
ValidatorRtFn cb ) const
overrideprotectedvirtual

Performs the validation on the input params and calls the cb with the ValidatorReturnType as argument.

If validation succeeded, ValidatorReturnType::value will contain the input parameter value converted into a QDateTime.

Since
Cutelyst 5.0.0

Reimplemented from Cutelyst::ValidatorRule.

Definition at line 51 of file validatordatetime.cpp.

References validate().

Referenced by ~ValidatorDateTime().