cutelyst 5.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
validatorresult.cpp
1/*
2 * SPDX-FileCopyrightText: (C) 2017-2023 Matthias Fehring <mf@huessenbergnetz.de>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#include "validatorresult_p.h"
7
8#include <QJsonArray>
9#include <QJsonValue>
10
11using namespace Cutelyst;
12
14 : d(new ValidatorResultPrivate)
15{
16}
17
18ValidatorResult::ValidatorResult(const ValidatorResult &other) noexcept = default;
19
20ValidatorResult::ValidatorResult(ValidatorResult &&other) noexcept = default;
21
22ValidatorResult &ValidatorResult::operator=(const ValidatorResult &other) noexcept = default;
23
25
26ValidatorResult::~ValidatorResult() noexcept = default;
27
28bool ValidatorResult::isValid() const noexcept
29{
30 return d->errors.empty();
31}
32
33void ValidatorResult::addError(const QString &field, const QString &message)
34{
35 QStringList fieldErrors = d->errors.value(field);
36 fieldErrors.append(message);
37 d->errors.insert(field, fieldErrors);
38}
39
41{
42 QStringList strings;
43
44 for (const auto &error : d->errors) {
45 strings.append(error);
46 }
47
48 return strings;
49}
50
52{
53 return d->errors;
54}
55
56QStringList ValidatorResult::errors(const QString &field) const noexcept
57{
58 return d->errors.value(field);
59}
60
61bool ValidatorResult::hasErrors(const QString &field) const noexcept
62{
63 return d->errors.contains(field);
64}
65
67{
68 QJsonObject json;
69
70 for (const auto &[key, error] : d->errors.asKeyValueRange()) {
71 json.insert(key, QJsonArray::fromStringList(error));
72 }
73
74 return json;
75}
76
78{
79 return QStringList(d->errors.keys());
80}
81
82QVariantHash ValidatorResult::values() const noexcept
83{
84 return d->values;
85}
86
87QVariant ValidatorResult::value(const QString &field) const noexcept
88{
89 return d->values.value(field);
90}
91
92void ValidatorResult::addValue(const QString &field, const QVariant &value)
93{
94 d->values.insert(field, value);
95}
96
97QVariantHash ValidatorResult::extras() const noexcept
98{
99 return d->extras;
100}
101
102QVariant ValidatorResult::extra(const QString &field) const noexcept
103{
104 return d->extras.value(field);
105}
106
107void ValidatorResult::addExtra(const QString &field, const QVariant &extra)
108{
109 d->extras.insert(field, extra);
110}
Provides information about performed validations.
void addExtra(const QString &field, const QVariant &extra)
QStringList failedFields() const
Returns a list of fields with errors.
ValidatorResult & operator=(const ValidatorResult &other) noexcept
QJsonObject errorsJsonObject() const
bool hasErrors(const QString &field) const noexcept
void addValue(const QString &field, const QVariant &value)
QVariant value(const QString &field) const noexcept
QHash< QString, QStringList > errors() const noexcept
void addError(const QString &field, const QString &message)
QVariant extra(const QString &field) const noexcept
QStringList errorStrings() const
QVariantHash values() const noexcept
QVariantHash extras() const noexcept
The Cutelyst namespace holds all public Cutelyst API.
QJsonArray fromStringList(const QStringList &list)
QJsonObject::iterator insert(QLatin1StringView key, const QJsonValue &value)
void append(QList::parameter_type value)
T value(qsizetype i) const const
T value() const const