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 NoTrimming = 2,
320 BodyParamsOnly =
321 4,
323 QueryParamsOnly =
324 8
326 };
327 Q_DECLARE_FLAGS(ValidatorFlags, ValidatorFlag)
328
329
335 explicit Validator(const char *translationContext = nullptr);
336
346 Validator(std::initializer_list<ValidatorRule *> validators,
347 const char *translationContext = nullptr);
348
353
358 void clear();
359
371 ValidatorResult validate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
372
383 ValidatorResult validate(Context *c,
384 const ParamsMultiMap &parameters,
385 ValidatorFlags flags = NoSpecialBehavior) const;
386
401 AwaitedValidatorResult coValidate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
402
416 AwaitedValidatorResult coValidate(Context *c,
417 const ParamsMultiMap &params,
418 ValidatorFlags flags = NoSpecialBehavior) const;
419
424 void addValidator(ValidatorRule *v);
425
432 static void loadTranslations(Application *app);
433
434private:
435 const std::unique_ptr<ValidatorPrivate> d_ptr;
436
437 Q_DECLARE_PRIVATE(Validator) // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast)
438 Q_DISABLE_COPY(Validator)
439};
440
441} // namespace Cutelyst
442
443Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::Validator::ValidatorFlags)
444
445#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.