cutelyst
4.5.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
|
Checks if the inut data is valid JSON. More...
#include <Cutelyst/Plugins/Utils/validatorjson.h>
Public Types | |
enum class | ExpectedType { All , Array , Object } |
Public Member Functions | |
ValidatorJson (const QString &field, ExpectedType expectedType=ExpectedType::All, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString()) | |
~ValidatorJson () 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 |
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 |
virtual QString | genericParsingError (Context *c, const QVariant &errorData={}) const |
virtual QString | genericValidationDataError (Context *c, const QVariant &errorData={}) const |
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 tries to load the input field string into a QJsonDocument and checks if it is not null and not empty and if it complies to the expected type.
Definition at line 36 of file validatorjson.h.
|
strong |
Defines the expected JSON root type that will be accepted as valid.
Enumerator | |
---|---|
All | Accepts both, object and array, as valid. If valid, ValidatorReturnType::value will contain a QJsonDocument. |
Array | Only accepts the input as valid if the root is of type array. If valid, ValidatorReturnType::value will contain a QJsonArray. |
Object | Only accepts the input as valid if the root is of type object. If valid, ValidatorReturnType::value will contain a QJsonObject. |
Definition at line 42 of file validatorjson.h.
ValidatorJson::ValidatorJson | ( | const QString & | field, |
ExpectedType | expectedType = ExpectedType::All , |
||
const ValidatorMessages & | messages = ValidatorMessages() , |
||
const QString & | defValKey = QString() |
||
) |
Constructs a new ValidatorJson object with the given parameters.
field | Name of the input field to validate. |
expectedType | Expected JSON root type. |
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 15 of file validatorjson.cpp.
|
overridedefault |
Destroys the ValidatorJson object.
|
overrideprotectedvirtual |
Returns a generic error message if validation failed.
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 71 of file validatorjson.cpp.
References QString::arg(), Array, QString::isEmpty(), QVariant::isNull(), Cutelyst::ValidatorRule::label(), Cutelyst::Context::qtTrId(), and QVariant::toString().
|
overrideprotectedvirtual |
Performs the validation on the input params and returns the result.
If validation succeeded, ValidatorReturnType::value will contain a QJsonDocument if expectedType is set to ExpectedType::All, a QJsonArray if expectedType is set to ExpectedType::Array, or a QJsonObject if expectedType is set to ExpectedType::Object.
Implements Cutelyst::ValidatorRule.
Definition at line 25 of file validatorjson.cpp.
References Array, QJsonDocument::array(), Cutelyst::ValidatorRule::debugString(), Cutelyst::ValidatorRule::defaultValue(), Cutelyst::ValidatorReturnType::errorMessage, QJsonParseError::errorString(), QJsonDocument::fromJson(), QJsonDocument::isArray(), QString::isEmpty(), QJsonDocument::isObject(), QJsonParseError::NoError, Object, QJsonDocument::object(), QVariant::setValue(), QString::toUtf8(), Cutelyst::ValidatorRule::validationError(), Cutelyst::ValidatorReturnType::value, and Cutelyst::ValidatorRule::value().