cutelyst 5.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-2025 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/Plugins/Utils/validator_export.h>
12
13namespace Cutelyst {
14
45class ValidatorPrivate;
46class Context;
47class Application;
48class ValidatorRule;
49
308class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT Validator
309{
310public:
315 NoSpecialBehavior = 0,
316 StopOnFirstError =
317 1,
318 FillStashOnError [[deprecated]] = 2,
320 NoTrimming = 4,
322 BodyParamsOnly =
323 8,
325 QueryParamsOnly =
326 16
328 };
329 Q_DECLARE_FLAGS(ValidatorFlags, ValidatorFlag)
330
331
337 explicit Validator(const char *translationContext = nullptr);
338
348 Validator(std::initializer_list<ValidatorRule *> validators,
349 const char *translationContext = nullptr);
350
355
360 void clear();
361
373 ValidatorResult validate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
374
385 ValidatorResult validate(Context *c,
386 const ParamsMultiMap &parameters,
387 ValidatorFlags flags = NoSpecialBehavior) const;
388
403 AwaitedValidatorResult coValidate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
404
418 AwaitedValidatorResult coValidate(Context *c,
419 const ParamsMultiMap &params,
420 ValidatorFlags flags = NoSpecialBehavior) const;
421
426 void addValidator(ValidatorRule *v);
427
434 static void loadTranslations(Application *app);
435
436private:
437 const std::unique_ptr<ValidatorPrivate> d_ptr;
438
439 Q_DECLARE_PRIVATE(Validator) // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast)
440 Q_DISABLE_COPY(Validator)
441};
442
443} // namespace Cutelyst
444
445Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::Validator::ValidatorFlags)
446
447#endif // CUTELYSTVALIDATOR_H
The Cutelyst application.
Definition application.h:66
Coroutine awaitable for ValidatorResult.
The Cutelyst Context.
Definition context.h:42
Provides information about performed validations.
Base class for all validator rules.
Validation processor for input data.
Definition validator.h:309
The Cutelyst namespace holds all public Cutelyst API.