cutelyst
4.8.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
validatorregularexpression.cpp
1
/*
2
* SPDX-FileCopyrightText: (C) 2017-2023 Matthias Fehring <mf@huessenbergnetz.de>
3
* SPDX-License-Identifier: BSD-3-Clause
4
*/
5
6
#include "validatorregularexpression_p.h"
7
8
using namespace
Cutelyst
;
9
10
ValidatorRegularExpression::ValidatorRegularExpression
(
const
QString &field,
11
const
QRegularExpression ®ex,
12
const
ValidatorMessages
&messages,
13
const
QString &defValKey)
14
:
ValidatorRule
(*new ValidatorRegularExpressionPrivate(field, regex, messages, defValKey))
15
{
16
}
17
18
ValidatorRegularExpression::~ValidatorRegularExpression
() =
default
;
19
20
ValidatorReturnType
ValidatorRegularExpression::validate
(
Context
*c,
21
const
ParamsMultiMap
¶ms)
const
22
{
23
ValidatorReturnType
result;
24
25
Q_D(
const
ValidatorRegularExpression
);
26
27
const
QString v =
value
(params);
28
29
if
(d->regex.isValid()) {
30
if
(!v.isEmpty()) {
31
if
(v.contains(d->regex)) {
32
result.
value
.setValue(v);
33
}
else
{
34
result.
errorMessage
=
validationError
(c);
35
qCDebug(C_VALIDATOR).noquote().nospace()
36
<<
debugString
(c) <<
" value \""
<< v <<
"\" does not match "
<< d->regex;
37
}
38
}
else
{
39
defaultValue
(c, &result);
40
}
41
}
else
{
42
result.
errorMessage
=
validationDataError
(c);
43
qCWarning(C_VALIDATOR).noquote().nospace()
44
<<
debugString
(c) <<
" the regular expression is not valid: "
<< d->regex.errorString();
45
}
46
47
return
result;
48
}
49
50
QString
ValidatorRegularExpression::genericValidationError
(
Context
*c,
51
const
QVariant &errorData)
const
52
{
53
Q_UNUSED(errorData)
54
const
QString _label =
label
(c);
55
if
(_label.isEmpty()) {
56
//% "Does not match the desired format."
57
return
c->
qtTrId
(
"cutelyst-valregex-genvalerr"
);
58
}
else
{
59
//: %1 will be replaced by the field label
60
//% "The “%1” field does not match the desired format."
61
return
c->
qtTrId
(
"cutelyst-valregex-genvalerr-label"
).arg(_label);
62
}
63
}
Cutelyst::Context
The Cutelyst Context.
Definition
context.h:42
Cutelyst::Context::qtTrId
QString qtTrId(const char *id, int n=-1) const
Definition
context.h:656
Cutelyst::ValidatorRegularExpression
The field under validation must match the given regular expression.
Definition
validatorregularexpression.h:38
Cutelyst::ValidatorRegularExpression::validate
ValidatorReturnType validate(Context *c, const ParamsMultiMap ¶ms) const override
Definition
validatorregularexpression.cpp:20
Cutelyst::ValidatorRegularExpression::~ValidatorRegularExpression
~ValidatorRegularExpression() override
Cutelyst::ValidatorRegularExpression::ValidatorRegularExpression
ValidatorRegularExpression(const QString &field, const QRegularExpression ®ex, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString())
Definition
validatorregularexpression.cpp:10
Cutelyst::ValidatorRegularExpression::genericValidationError
QString genericValidationError(Context *c, const QVariant &errorData=QVariant()) const override
Definition
validatorregularexpression.cpp:50
Cutelyst::ValidatorRule
Base class for all validator rules.
Definition
validatorrule.h:304
Cutelyst::ValidatorRule::validationError
QString validationError(Context *c, const QVariant &errorData={}) const
Definition
validatorrule.cpp:61
Cutelyst::ValidatorRule::label
QString label(Context *c) const
Definition
validatorrule.cpp:49
Cutelyst::ValidatorRule::validationDataError
QString validationDataError(Context *c, const QVariant &errorData={}) const
Definition
validatorrule.cpp:116
Cutelyst::ValidatorRule::defaultValue
void defaultValue(Context *c, ValidatorReturnType *result) const
Definition
validatorrule.cpp:144
Cutelyst::ValidatorRule::value
QString value(const ParamsMultiMap ¶ms) const
Definition
validatorrule.cpp:34
Cutelyst::ValidatorRule::debugString
QString debugString(Context *c) const
Definition
validatorrule.cpp:157
Cutelyst::ParamsMultiMap
QMultiMap< QString, QString > ParamsMultiMap
Definition
paramsmultimap.h:23
Cutelyst
The Cutelyst namespace holds all public Cutelyst API.
Definition
group-core-actions.dox:1
Cutelyst::ValidatorMessages
Stores custom error messages and the input field label.
Definition
validatorrule.h:142
Cutelyst::ValidatorReturnType
Contains the result of a single input parameter validation.
Definition
validatorrule.h:49
Cutelyst::ValidatorReturnType::value
QVariant value
Definition
validatorrule.h:54
Cutelyst::ValidatorReturnType::errorMessage
QString errorMessage
Definition
validatorrule.h:50
Cutelyst
Plugins
Utils
Validator
validatorregularexpression.cpp
Generated by
1.10.0