Cutelyst  3.5.0
validator.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2017-2022 Matthias Fehring <mf@huessenbergnetz.de>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 #ifndef CUTELYSTVALIDATOR_H
6 #define CUTELYSTVALIDATOR_H
7 
8 #include <Cutelyst/cutelyst_global.h>
9 #include <Cutelyst/ParamsMultiMap>
10 #include <QScopedPointer>
11 #include "validatorresult.h"
12 
13 namespace Cutelyst {
14 
42 class ValidatorPrivate;
43 class Context;
44 class Application;
45 class ValidatorRule;
46 
226 class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT Validator
227 {
228 public:
233  NoSpecialBehavior = 0,
234  StopOnFirstError = 1,
235  FillStashOnError = 2,
236  NoTrimming = 4,
237  BodyParamsOnly = 8,
238  QueryParamsOnly = 16
239  };
240  Q_DECLARE_FLAGS(ValidatorFlags, ValidatorFlag)
241 
242 
245  explicit Validator(QLatin1String translationContext = QLatin1String());
246 
247 #ifdef Q_COMPILER_INITIALIZER_LISTS
248 
255  explicit Validator(std::initializer_list<ValidatorRule*> validators, QLatin1String translationContext = QLatin1String());
256 #endif
257 
261  ~Validator();
262 
269  void clear();
270 
282  ValidatorResult validate(Context *c, ValidatorFlags flags = NoSpecialBehavior) const;
283 
294  ValidatorResult validate(Context *c, const ParamsMultiMap &parameters, ValidatorFlags flags = NoSpecialBehavior) const;
295 
302  void addValidator(ValidatorRule *v);
303 
307  static void loadTranslations(Application *app);
308 
309 protected:
311 
312 private:
313  Q_DECLARE_PRIVATE(Validator)
314  Q_DISABLE_COPY(Validator)
315 };
316 
317 }
318 
319 Q_DECLARE_OPERATORS_FOR_FLAGS(Cutelyst::Validator::ValidatorFlags)
320 
321 #endif //CUTELYSTVALIDATOR_H
The Cutelyst Context.
Definition: context.h:38
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:7
ValidatorFlag
Flags that change the behavior of the Validator.
Definition: validator.h:232
Base class for all validator rules.
Validation processor for input data.
Definition: validator.h:226
The Cutelyst Application.
Definition: application.h:42
Provides information about performed validations.