5#ifndef CUTELYSTVALIDATORRULE_H
6#define CUTELYSTVALIDATORRULE_H
8#include <Cutelyst/Plugins/Utils/validator_export.h>
9#include <Cutelyst/context.h>
10#include <Cutelyst/paramsmultimap.h>
13#include <QLoggingCategory>
15#include <QScopedPointer>
18Q_DECLARE_LOGGING_CATEGORY(C_VALIDATOR)
68 explicit operator bool() const noexcept {
return errorMessage.isNull(); }
170 const char *customValidationError =
nullptr,
171 const char *customParsingError =
nullptr,
172 const char *customValidationDataError =
nullptr)
185class ValidatorRulePrivate;
378 const std::unique_ptr<ValidatorRulePrivate> d_ptr;
500 [[nodiscard]]
bool trimBefore() const noexcept;
564 [[nodiscard]]
QString parsingError(Context *c,
const QVariant &errorData = {})
const;
596 virtual QString genericParsingError(Context *c,
const QVariant &errorData = {})
const;
612 [[nodiscard]] QString validationDataError(Context *c,
const QVariant &errorData = {})
const;
643 virtual QString genericValidationDataError(Context *c,
const QVariant &errorData = {})
const;
649 void defaultValue(Context *c, ValidatorReturnType *result)
const;
658 void defaultValue(Context *c, ValidatorRtFn cb)
const;
666 [[nodiscard]] QString debugString(
const Context *c)
const;
669 Q_DECLARE_PRIVATE(ValidatorRule)
670 Q_DISABLE_COPY(ValidatorRule)
676 void setTranslationContext(
const char *trContext)
noexcept;
688 void setTrimBefore(
bool trimBefore)
noexcept;
690 friend class Validator;
691 friend class ValidatorPrivate;
692 friend class AsyncValidator;
QString field() const noexcept
QString validationError(Context *c, const QVariant &errorData={}) const
QString label(const Context *c) const
virtual ~ValidatorRule()
Deconstructs the ValidatorRule.
bool trimBefore() const noexcept
virtual ValidatorReturnType validate(Context *c, const ParamsMultiMap ¶ms) const =0
ValidatorRule(const QString &field, const ValidatorMessages &messages={}, const QString &defValKey={}, QByteArrayView validatorName=nullptr)
std::function< void(ValidatorReturnType &&result)> ValidatorRtFn
Void callback function for validator rules that processes the ValidatorReturnType.
QString value(const ParamsMultiMap ¶ms) const
virtual void validateCb(Context *c, const ParamsMultiMap ¶ms, ValidatorRtFn cb) const
QMultiMap< QString, QString > ParamsMultiMap
The Cutelyst namespace holds all public Cutelyst API.
Stores custom error messages and the input field label.
ValidatorMessages(const char *customLabel, const char *customValidationError=nullptr, const char *customParsingError=nullptr, const char *customValidationDataError=nullptr)
Constructs a new ValidatorMessages object with the given parameters.
const char * parsingError
const char * validationError
ValidatorMessages()=default
const char * validationDataError
Contains the result of a single input parameter validation.
bool isValid() const noexcept