cutelyst 4.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
validator.h
1/*
2 * SPDX-FileCopyrightText: (C) 2017-2023 Matthias Fehring <mf@huessenbergnetz.de>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#ifndef CUTELYSTVALIDATOR_H
6#define CUTELYSTVALIDATOR_H
7
8#include "validatorresult.h"
9
10#include <Cutelyst/ParamsMultiMap>
11#include <Cutelyst/cutelyst_global.h>
12
13#include <QScopedPointer>
14
15namespace Cutelyst {
16
46class ValidatorPrivate;
47class Context;
48class Application;
49class ValidatorRule;
50
282class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT Validator
283{
284public:
289 NoSpecialBehavior = 0,
290 StopOnFirstError =
291 1,
292 FillStashOnError = 2,
293 NoTrimming = 4,
295 BodyParamsOnly =
296 8,
298 QueryParamsOnly =
299 16
301 };
302 Q_DECLARE_FLAGS(ValidatorFlags, ValidatorFlag)
303
304
307 explicit Validator(QLatin1String translationContext = QLatin1String());
308
314 explicit Validator(std::initializer_list<ValidatorRule *> validators,
315 QLatin1String translationContext = QLatin1String());
316
321
328 void clear();
329
341 ValidatorResult validate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
342
353 ValidatorResult validate(Context *c,
354 const ParamsMultiMap &parameters,
355 ValidatorFlags flags = NoSpecialBehavior) const;
356
363 void addValidator(ValidatorRule *v);
364
368 static void loadTranslations(Application *app);
369
370private:
371 const std::unique_ptr<ValidatorPrivate> d_ptr;
372
373 Q_DECLARE_PRIVATE(Validator) // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast)
374 Q_DISABLE_COPY(Validator)
375};
376
377} // namespace Cutelyst
378
379Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::Validator::ValidatorFlags)
380
381#endif // CUTELYSTVALIDATOR_H
The Cutelyst Application.
Definition: application.h:43
The Cutelyst Context.
Definition: context.h:38
Provides information about performed validations.
Base class for all validator rules.
Validation processor for input data.
Definition: validator.h:283
~Validator()
Desconstructs the Validator and all added ValidatorRule objects.
ValidatorFlag
Flags that change the behavior of the Validator.
Definition: validator.h:288
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:8
QMultiMap< QString, QString > ParamsMultiMap