cutelyst  5.0.1
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 
13 namespace Cutelyst {
14 
45 class ValidatorPrivate;
46 class Context;
47 class Application;
48 class ValidatorRule;
49 
308 class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT Validator
309 {
310 public:
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 
352  ~Validator();
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 
434 private:
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 
443 Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::Validator::ValidatorFlags)
444 
445 #endif // CUTELYSTVALIDATOR_H
The Cutelyst Context.
Definition: context.h:42
Coroutine awaitable for ValidatorResult.
The Cutelyst namespace holds all public Cutelyst API.
Base class for all validator rules.
Validation processor for input data.
Definition: validator.h:308
The Cutelyst application.
Definition: application.h:72
Provides information about performed validations.