Skip to content

Commit 9e055a9

Browse files
committed
V2
1 parent 7df1a20 commit 9e055a9

File tree

170 files changed

+3113
-8943
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+3113
-8943
lines changed

README.md

Lines changed: 100 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ uses DataValidator;
5454
* Values
5555
* JSON
5656

57-
##### Modo: Values
57+
## Values
5858

5959
- No modo values, o valor informado no **_validate_** é o que será analisado!
6060

@@ -80,10 +80,10 @@ begin
8080
.NormalizeEmail
8181
.&End
8282
83-
.CheckAll;
83+
.Check;
8484
```
8585

86-
##### Modo: JSON
86+
## JSON
8787

8888
- No modo JSON, o que deve ser informado **_validate_** é o nome da key do json!
8989
- Caso seja utilizado algum **_sanitizer_**, o valor dentro do JSON será modificado!
@@ -145,35 +145,42 @@ begin
145145
146146
.CheckAll;
147147
```
148+
## Informações
149+
150+
### Diferença de Check e CheckAll
151+
- **Check**: Faz a verificação de todos os **_validate_**, mas se houver um item com retorno **_false_** ele interrompe, retornando uma única mensagem com erro se tiver!
152+
153+
- **CheckAll**: Faz a verificação de todos os **_validate_**, retornando todas mensagens com erro se tiver! <br>
148154

155+
Usando o ``` CheckAll(TDataValidatorCheckAll.tcFirst) ``` ele retornar apenas a primeira mensagem de erro de cada **_validate_**.
149156

150-
#### Como saber se houve error
157+
### Como saber se houve error
151158

152159
```
153160
Result := LResult.Ok; // True = Nenhum erro | False = Tem erro
154161
```
155162

156-
#### Como recuperar todas as mensagens de errors
163+
### Como recuperar a mensagem com erro
157164
```
158165
Result := LResult.Informations.Message;
159166
```
160167

161-
#### Como recuperar uma única mensagem de error
168+
### Como recuperar uma única mensagem de error
162169
```
163170
Result := LResult.Informations.GetItem(0).Message;
164171
```
165172

166-
#### Como recuperar o total de errors
173+
### Como recuperar a quantidade de errors
167174
```
168175
Result := LResult.Informations.Count;
169176
```
170177

171-
#### Diferença de Check e CheckAll
172-
173-
- **Check**: Faz a verificação de todos os **_validate_**, mas se houver um item com retorno **_false_** ele interrompe, retornando uma única mensagem de erro se tiver!
174-
- **CheckAll**: Faz a verificação de todos os **_validate_**, retornando todas mensagens de erro se tiver!
178+
### Como recuperar o valor analizado
179+
```
180+
Result := LResult.Values[0]; // Recupera o primeiro valor
181+
```
175182

176-
#### **Validação Schema**
183+
### **Validação Schema**
177184
- É uma forma de criar um esqueleto de validação e conseguir reutilizar em outras validações.
178185

179186
```
@@ -250,84 +257,84 @@ TDataValidator.Values
250257

251258
## Validators / Sanitizers
252259

253-
|Validação para values |Validação JSON (Key/Value) |Sanitizers para Valus |
254-
| ------------ | ------------ | ------------ |
255-
|CustomValue |(Key) IsOptional |CustomSanitizer |
256-
|Contains |(Key) IsRequired |NormalizeEmail |
257-
|EndsWith |(Value) CustomJSONValue |OnlyNumbers |
258-
|IsAlpha |(Value) IsNull |RemoveAccents |
259-
|IsAlphaNumeric |(Value) MinItems |Replace |
260-
|IsAscii |(Value) MaxItems |ToBase64Decode |
261-
|IsBase32 |(Value) + Validação para values |ToBase64Encode |
262-
|IsBase58 | |ToDate |
263-
|IsBase64 | |ToDateTime |
264-
|IsBetween | |ToHTMLDecode |
265-
|IsBoolean | |ToHTMLEncode |
266-
|IsBTCAddress | |ToInteger |
267-
|IsCNPJ | |ToLowerCase |
268-
|IsCPF | |ToMD5 |
269-
|IsCPFCNPJ | |ToNumeric |
270-
|IsDate | |ToTime |
271-
|IsDateBetween | |ToUpperCase |
272-
|IsDateEquals | |ToURLDecode |
273-
|IsDateGreaterThan | |ToURLEncode |
274-
|IsDateLessThan | |Trim |
275-
|IsDateTime | |TrimLeft |
276-
|IsEmail | |TrimRight |
277-
|IsEmpty | | |
278-
|IsEquals | | |
279-
|IsEthereumAddress | | |
280-
|IsGreaterThan | | |
281-
|IsGTIN | | |
282-
|IsGTIN8 | | |
283-
|IsGTIN12 | | |
284-
|IsGTIN13 | | |
285-
|IsGTIN14 | | |
286-
|IsHexadecimal | | |
287-
|IsHexColor | | |
288-
|IsInteger | | |
289-
|IsIP | | |
290-
|IsIPv4 | | |
291-
|IsIPv6 | | |
292-
|IsISO8601 | | |
293-
|IsJSON | | |
294-
|IsJSONArray | | |
295-
|IsJSONObject | | |
296-
|IsJWT | | |
297-
|IsLatLong | | |
298-
|IsLength | | |
299-
|IsLessThan | | |
300-
|IsLocale | | |
301-
|IsLowercase | | |
302-
|IsMACAddress | | |
303-
|IsMagnetURI | | |
304-
|IsMD5 | | |
305-
|IsMimeType | | |
306-
|IsMongoId | | |
307-
|IsNegative | | |
308-
|IsNumeric | | |
309-
|IsOptional | | |
310-
|IsOctal | | |
311-
|IsPassportNumber | | |
312-
|IsPhoneNumber | | |
313-
|IsPort | | |
314-
|IsPositive | | |
315-
|IsPostalCode | | |
316-
|IsRGBColor | | |
317-
|IsSSN | | |
318-
|IsTime | | |
319-
|IsTimeBetween | | |
320-
|IsTimeEquals | | |
321-
|IsTimeGreaterThan | | |
322-
|IsTimeLessThan | | |
323-
|IsUppercase | | |
324-
|IsURL | | |
325-
|IsUUID | | |
326-
|IsUUIDv1 | | |
327-
|IsUUIDv2 | | |
328-
|IsUUIDv3 | | |
329-
|IsUUIDv4 | | |
330-
|IsUUIDv5 | | |
331-
|IsZero | | |
332-
|RegexIsMatch | | |
333-
|StartsWith | | |
260+
| Validação para values | Validação JSON (Key/Value) | Sanitizers para values |
261+
| ------------ | ------------ | ------------ |
262+
| CustomValue | (Key) IsOptional | CustomSanitizer |
263+
| Contains | (Key) IsRequired | NormalizeEmail |
264+
| EndsWith | (Value) CustomJSONValue | OnlyNumbers |
265+
| IsAlpha | (Value) IsJSONNull | RemoveAccents |
266+
| IsAlphaNumeric | (Value) IsJSONBoolean | Replace |
267+
| IsAscii | (Value) IsJSONNumeric | ToBase64Decode |
268+
| IsBase32 | (Value) IsJSONString | ToBase64Encode |
269+
| IsBase58 | (Value) MinItems | ToDate |
270+
| IsBase64 | (Value) MaxItems | ToDateTime |
271+
| IsBetween | (Value) + Validação para values | ToHTMLDecode |
272+
| IsBoolean | | ToHTMLEncode |
273+
| IsBTCAddress | | ToInteger |
274+
| IsCNPJ | | ToLowerCase |
275+
| IsCPF | | ToMD5 |
276+
| IsCPFCNPJ | | ToNumeric |
277+
| IsDate | | ToTime |
278+
| IsDateBetween | | ToUpperCase |
279+
| IsDateEquals | | ToURLDecode |
280+
| IsDateGreaterThan | | ToURLEncode |
281+
| IsDateLessThan | | Trim |
282+
| IsDateTime | | TrimLeft |
283+
| IsEmail | | TrimRight |
284+
| IsEmpty | | |
285+
| IsEquals | | |
286+
| IsEthereumAddress | | |
287+
| IsGreaterThan | | |
288+
| IsGTIN | | |
289+
| IsGTIN8 | | |
290+
| IsGTIN12 | | |
291+
| IsGTIN13 | | |
292+
| IsGTIN14 | | |
293+
| IsHexadecimal | | |
294+
| IsHexColor | | |
295+
| IsInteger | | |
296+
| IsIP | | |
297+
| IsIPv4 | | |
298+
| IsIPv6 | | |
299+
| IsISO8601 | | |
300+
| IsJSON | | |
301+
| IsJSONArray | | |
302+
| IsJSONObject | | |
303+
| IsJWT | | |
304+
| IsLatLong | | |
305+
| IsLength | | |
306+
| IsLessThan | | |
307+
| IsLocale | | |
308+
| IsLowercase | | |
309+
| IsMACAddress | | |
310+
| IsMagnetURI | | |
311+
| IsMD5 | | |
312+
| IsMimeType | | |
313+
| IsMongoId | | |
314+
| IsNegative | | |
315+
| IsNumeric | | |
316+
| IsOptional | | |
317+
| IsOctal | | |
318+
| IsPassportNumber | | |
319+
| IsPhoneNumber | | |
320+
| IsPort | | |
321+
| IsPositive | | |
322+
| IsPostalCode | | |
323+
| IsRGBColor | | |
324+
| IsSSN | | |
325+
| IsTime | | |
326+
| IsTimeBetween | | |
327+
| IsTimeEquals | | |
328+
| IsTimeGreaterThan | | |
329+
| IsTimeLessThan | | |
330+
| IsUppercase | | |
331+
| IsURL | | |
332+
| IsUUID | | |
333+
| IsUUIDv1 | | |
334+
| IsUUIDv2 | | |
335+
| IsUUIDv3 | | |
336+
| IsUUIDv4 | | |
337+
| IsUUIDv5 | | |
338+
| IsZero | | |
339+
| RegexIsMatch | | |
340+
| StartsWith | | |

samples/JSON/Basic/Basic.delphilsp.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

samples/JSON/Basic/Basic.dpr

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
program Basic;
2+
3+
uses
4+
Vcl.Forms,
5+
UBasic in 'UBasic.pas' {Form2},
6+
DataValidator.Context in '..\..\..\src\core\DataValidator.Context.pas',
7+
DataValidator.Information in '..\..\..\src\core\DataValidator.Information.pas',
8+
DataValidator.Intf in '..\..\..\src\core\DataValidator.Intf.pas',
9+
DataValidator.ItemBase in '..\..\..\src\core\DataValidator.ItemBase.pas',
10+
DataValidator.ItemBase.Sanitizer in '..\..\..\src\core\DataValidator.ItemBase.Sanitizer.pas',
11+
DataValidator.JSON.Base in '..\..\..\src\core\DataValidator.JSON.Base.pas',
12+
DataValidator.JSON.Context in '..\..\..\src\core\DataValidator.JSON.Context.pas',
13+
DataValidator.JSON in '..\..\..\src\core\DataValidator.JSON.pas',
14+
DataValidator in '..\..\..\src\core\DataValidator.pas',
15+
DataValidator.Result in '..\..\..\src\core\DataValidator.Result.pas',
16+
DataValidator.Schema.Base in '..\..\..\src\core\DataValidator.Schema.Base.pas',
17+
DataValidator.Schema in '..\..\..\src\core\DataValidator.Schema.pas',
18+
DataValidator.Types in '..\..\..\src\core\DataValidator.Types.pas',
19+
DataValidator.Value.Base in '..\..\..\src\core\DataValidator.Value.Base.pas',
20+
DataValidator.Value in '..\..\..\src\core\DataValidator.Value.pas',
21+
Sanitizer.Base64.Decode in '..\..\..\src\sanitializators\Sanitizer.Base64.Decode.pas',
22+
Sanitizer.Base64.Encode in '..\..\..\src\sanitializators\Sanitizer.Base64.Encode.pas',
23+
Sanitizer.Custom in '..\..\..\src\sanitializators\Sanitizer.Custom.pas',
24+
Sanitizer.HTML.Decode in '..\..\..\src\sanitializators\Sanitizer.HTML.Decode.pas',
25+
Sanitizer.HTML.Encode in '..\..\..\src\sanitializators\Sanitizer.HTML.Encode.pas',
26+
Sanitizer.NormalizeEmail in '..\..\..\src\sanitializators\Sanitizer.NormalizeEmail.pas',
27+
Sanitizer.OnlyNumbers in '..\..\..\src\sanitializators\Sanitizer.OnlyNumbers.pas',
28+
Sanitizer.RemoveAccents in '..\..\..\src\sanitializators\Sanitizer.RemoveAccents.pas',
29+
Sanitizer.Replace in '..\..\..\src\sanitializators\Sanitizer.Replace.pas',
30+
Sanitizer.ToDate in '..\..\..\src\sanitializators\Sanitizer.ToDate.pas',
31+
Sanitizer.ToDateTime in '..\..\..\src\sanitializators\Sanitizer.ToDateTime.pas',
32+
Sanitizer.ToInteger in '..\..\..\src\sanitializators\Sanitizer.ToInteger.pas',
33+
Sanitizer.ToLowerCase in '..\..\..\src\sanitializators\Sanitizer.ToLowerCase.pas',
34+
Sanitizer.ToMD5 in '..\..\..\src\sanitializators\Sanitizer.ToMD5.pas',
35+
Sanitizer.ToNumeric in '..\..\..\src\sanitializators\Sanitizer.ToNumeric.pas',
36+
Sanitizer.ToTime in '..\..\..\src\sanitializators\Sanitizer.ToTime.pas',
37+
Sanitizer.ToUpperCase in '..\..\..\src\sanitializators\Sanitizer.ToUpperCase.pas',
38+
Sanitizer.Trim in '..\..\..\src\sanitializators\Sanitizer.Trim.pas',
39+
Sanitizer.TrimLeft in '..\..\..\src\sanitializators\Sanitizer.TrimLeft.pas',
40+
Sanitizer.TrimRight in '..\..\..\src\sanitializators\Sanitizer.TrimRight.pas',
41+
Sanitizer.URL.Decode in '..\..\..\src\sanitializators\Sanitizer.URL.Decode.pas',
42+
Sanitizer.URL.Encode in '..\..\..\src\sanitializators\Sanitizer.URL.Encode.pas',
43+
Validator.Contains in '..\..\..\src\validators\Validator.Contains.pas',
44+
Validator.Custom in '..\..\..\src\validators\Validator.Custom.pas',
45+
Validator.EndsWith in '..\..\..\src\validators\Validator.EndsWith.pas',
46+
Validator.IsAlpha in '..\..\..\src\validators\Validator.IsAlpha.pas',
47+
Validator.IsAlphanumeric in '..\..\..\src\validators\Validator.IsAlphanumeric.pas',
48+
Validator.IsAscii in '..\..\..\src\validators\Validator.IsAscii.pas',
49+
Validator.IsBase32 in '..\..\..\src\validators\Validator.IsBase32.pas',
50+
Validator.IsBase58 in '..\..\..\src\validators\Validator.IsBase58.pas',
51+
Validator.IsBase64 in '..\..\..\src\validators\Validator.IsBase64.pas',
52+
Validator.IsBetween in '..\..\..\src\validators\Validator.IsBetween.pas',
53+
Validator.IsBoolean in '..\..\..\src\validators\Validator.IsBoolean.pas',
54+
Validator.IsBTCAddress in '..\..\..\src\validators\Validator.IsBTCAddress.pas',
55+
Validator.IsCNPJ in '..\..\..\src\validators\Validator.IsCNPJ.pas',
56+
Validator.IsCPF in '..\..\..\src\validators\Validator.IsCPF.pas',
57+
Validator.IsCPFCNPJ in '..\..\..\src\validators\Validator.IsCPFCNPJ.pas',
58+
Validator.IsDate in '..\..\..\src\validators\Validator.IsDate.pas',
59+
Validator.IsDateBetween in '..\..\..\src\validators\Validator.IsDateBetween.pas',
60+
Validator.IsDateEquals in '..\..\..\src\validators\Validator.IsDateEquals.pas',
61+
Validator.IsDateGreaterThan in '..\..\..\src\validators\Validator.IsDateGreaterThan.pas',
62+
Validator.IsDateLessThan in '..\..\..\src\validators\Validator.IsDateLessThan.pas',
63+
Validator.IsDateTime in '..\..\..\src\validators\Validator.IsDateTime.pas',
64+
Validator.IsEmail in '..\..\..\src\validators\Validator.IsEmail.pas',
65+
Validator.IsEmpty in '..\..\..\src\validators\Validator.IsEmpty.pas',
66+
Validator.IsEquals in '..\..\..\src\validators\Validator.IsEquals.pas',
67+
Validator.IsEthereumAddress in '..\..\..\src\validators\Validator.IsEthereumAddress.pas',
68+
Validator.IsGreaterThan in '..\..\..\src\validators\Validator.IsGreaterThan.pas',
69+
Validator.IsGTIN in '..\..\..\src\validators\Validator.IsGTIN.pas',
70+
Validator.IsHexadecimal in '..\..\..\src\validators\Validator.IsHexadecimal.pas',
71+
Validator.IsHexColor in '..\..\..\src\validators\Validator.IsHexColor.pas',
72+
Validator.IsInteger in '..\..\..\src\validators\Validator.IsInteger.pas',
73+
Validator.IsIP in '..\..\..\src\validators\Validator.IsIP.pas',
74+
Validator.IsISO8601 in '..\..\..\src\validators\Validator.IsISO8601.pas',
75+
Validator.IsJSON in '..\..\..\src\validators\Validator.IsJSON.pas',
76+
Validator.IsJWT in '..\..\..\src\validators\Validator.IsJWT.pas',
77+
Validator.IsLatLong in '..\..\..\src\validators\Validator.IsLatLong.pas',
78+
Validator.IsLength in '..\..\..\src\validators\Validator.IsLength.pas',
79+
Validator.IsLessThan in '..\..\..\src\validators\Validator.IsLessThan.pas',
80+
Validator.IsLocale in '..\..\..\src\validators\Validator.IsLocale.pas',
81+
Validator.IsLowercase in '..\..\..\src\validators\Validator.IsLowercase.pas',
82+
Validator.IsMACAddress in '..\..\..\src\validators\Validator.IsMACAddress.pas',
83+
Validator.IsMagnetURI in '..\..\..\src\validators\Validator.IsMagnetURI.pas',
84+
Validator.IsMD5 in '..\..\..\src\validators\Validator.IsMD5.pas',
85+
Validator.IsMimeType in '..\..\..\src\validators\Validator.IsMimeType.pas',
86+
Validator.IsMongoId in '..\..\..\src\validators\Validator.IsMongoId.pas',
87+
Validator.IsNegative in '..\..\..\src\validators\Validator.IsNegative.pas',
88+
Validator.IsNumeric in '..\..\..\src\validators\Validator.IsNumeric.pas',
89+
Validator.IsOctal in '..\..\..\src\validators\Validator.IsOctal.pas',
90+
Validator.IsOptional in '..\..\..\src\validators\Validator.IsOptional.pas',
91+
Validator.IsPassportNumber in '..\..\..\src\validators\Validator.IsPassportNumber.pas',
92+
Validator.IsPhoneNumber in '..\..\..\src\validators\Validator.IsPhoneNumber.pas',
93+
Validator.IsPort in '..\..\..\src\validators\Validator.IsPort.pas',
94+
Validator.IsPositive in '..\..\..\src\validators\Validator.IsPositive.pas',
95+
Validator.IsPostalCode in '..\..\..\src\validators\Validator.IsPostalCode.pas',
96+
Validator.IsRGBColor in '..\..\..\src\validators\Validator.IsRGBColor.pas',
97+
Validator.IsSSN in '..\..\..\src\validators\Validator.IsSSN.pas',
98+
Validator.IsTime in '..\..\..\src\validators\Validator.IsTime.pas',
99+
Validator.IsTimeBetween in '..\..\..\src\validators\Validator.IsTimeBetween.pas',
100+
Validator.IsTimeEquals in '..\..\..\src\validators\Validator.IsTimeEquals.pas',
101+
Validator.IsTimeGreaterThan in '..\..\..\src\validators\Validator.IsTimeGreaterThan.pas',
102+
Validator.IsTimeLessThan in '..\..\..\src\validators\Validator.IsTimeLessThan.pas',
103+
Validator.IsUppercase in '..\..\..\src\validators\Validator.IsUppercase.pas',
104+
Validator.IsURL in '..\..\..\src\validators\Validator.IsURL.pas',
105+
Validator.IsUUID in '..\..\..\src\validators\Validator.IsUUID.pas',
106+
Validator.IsZero in '..\..\..\src\validators\Validator.IsZero.pas',
107+
Validator.JSON.Key.IsOptional in '..\..\..\src\validators\Validator.JSON.Key.IsOptional.pas',
108+
Validator.JSON.Key.IsRequired in '..\..\..\src\validators\Validator.JSON.Key.IsRequired.pas',
109+
Validator.JSON.Value.Custom in '..\..\..\src\validators\Validator.JSON.Value.Custom.pas',
110+
Validator.JSON.Value.IsJSONValue in '..\..\..\src\validators\Validator.JSON.Value.IsJSONValue.pas',
111+
Validator.JSON.Value.IsMinMaxItems in '..\..\..\src\validators\Validator.JSON.Value.IsMinMaxItems.pas',
112+
Validator.Regex.IsMatch in '..\..\..\src\validators\Validator.Regex.IsMatch.pas',
113+
Validator.StartsWith in '..\..\..\src\validators\Validator.StartsWith.pas',
114+
Validator.JSON.SubValidator.Custom in '..\..\..\src\validators\Validator.JSON.SubValidator.Custom.pas';
115+
116+
{$R *.res}
117+
118+
begin
119+
Application.Initialize;
120+
Application.MainFormOnTaskbar := True;
121+
Application.CreateForm(TForm2, Form2);
122+
Application.Run;
123+
end.

0 commit comments

Comments
 (0)