File tree Expand file tree Collapse file tree 6 files changed +228
-0
lines changed
flask_inputfilter/templates Expand file tree Collapse file tree 6 files changed +228
-0
lines changed Original file line number Diff line number Diff line change 1+ from .authentication import AuthenticationInputFilter
2+ from .contact_form import ContactFormInputFilter
3+ from .file_upload import FileUploadInputFilter
4+ from .pagination import PaginationInputFilter
5+ from .registration import RegistrationInputFilter
6+
7+ __all__ = [
8+ "AuthenticationInputFilter" ,
9+ "ContactFormInputFilter" ,
10+ "FileUploadInputFilter" ,
11+ "PaginationInputFilter" ,
12+ "RegistrationInputFilter" ,
13+ ]
Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from flask_inputfilter import InputFilter
4+ from flask_inputfilter .declarative import field
5+ from flask_inputfilter .enums import RegexEnum
6+ from flask_inputfilter .filters import (
7+ StringTrimFilter ,
8+ ToBooleanFilter ,
9+ ToLowerFilter ,
10+ )
11+ from flask_inputfilter .validators import (
12+ IsBooleanValidator ,
13+ IsStringValidator ,
14+ LengthValidator ,
15+ RegexValidator ,
16+ )
17+
18+
19+ class AuthenticationInputFilter (InputFilter ):
20+ email = field (
21+ required = True ,
22+ filters = [StringTrimFilter (), ToLowerFilter ()],
23+ validators = [
24+ IsStringValidator (),
25+ RegexValidator (RegexEnum .EMAIL .value ),
26+ ],
27+ )
28+
29+ password = field (
30+ required = True ,
31+ validators = [IsStringValidator (), LengthValidator (min_length = 8 )],
32+ )
33+
34+ remember_me = field (
35+ required = False ,
36+ default = False ,
37+ filters = [ToBooleanFilter ()],
38+ validators = [IsBooleanValidator ()],
39+ )
Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from flask_inputfilter import InputFilter
4+ from flask_inputfilter .declarative import field
5+ from flask_inputfilter .enums import RegexEnum
6+ from flask_inputfilter .filters import StringTrimFilter , ToLowerFilter
7+ from flask_inputfilter .validators import (
8+ IsStringValidator ,
9+ LengthValidator ,
10+ RegexValidator ,
11+ )
12+
13+
14+ class ContactFormInputFilter (InputFilter ):
15+ name = field (
16+ required = True ,
17+ filters = [StringTrimFilter ()],
18+ validators = [
19+ IsStringValidator (),
20+ LengthValidator (min_length = 2 , max_length = 100 ),
21+ ],
22+ )
23+
24+ email = field (
25+ required = True ,
26+ filters = [StringTrimFilter (), ToLowerFilter ()],
27+ validators = [
28+ IsStringValidator (),
29+ RegexValidator (RegexEnum .EMAIL .value ),
30+ ],
31+ )
32+
33+ subject = field (
34+ required = True ,
35+ filters = [StringTrimFilter ()],
36+ validators = [
37+ IsStringValidator (),
38+ LengthValidator (min_length = 5 , max_length = 200 ),
39+ ],
40+ )
41+
42+ message = field (
43+ required = True ,
44+ filters = [StringTrimFilter ()],
45+ validators = [
46+ IsStringValidator (),
47+ LengthValidator (min_length = 10 , max_length = 1000 ),
48+ ],
49+ )
Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from flask_inputfilter import InputFilter
4+ from flask_inputfilter .declarative import field
5+ from flask_inputfilter .filters import StringTrimFilter
6+ from flask_inputfilter .validators import (
7+ IsBase64ImageValidator ,
8+ IsStringValidator ,
9+ LengthValidator ,
10+ RegexValidator ,
11+ )
12+
13+
14+ class FileUploadInputFilter (InputFilter ):
15+ file = field (required = True , validators = [IsBase64ImageValidator ()])
16+
17+ filename = field (
18+ required = True ,
19+ filters = [StringTrimFilter ()],
20+ validators = [
21+ IsStringValidator (),
22+ LengthValidator (min_length = 1 , max_length = 255 ),
23+ RegexValidator (r"^[a-zA-Z0-9._-]+$" ),
24+ ],
25+ )
26+
27+ description = field (
28+ required = False ,
29+ default = "" ,
30+ filters = [StringTrimFilter ()],
31+ validators = [IsStringValidator (), LengthValidator (max_length = 500 )],
32+ )
Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from flask_inputfilter import InputFilter
4+ from flask_inputfilter .declarative import field
5+ from flask_inputfilter .filters import (
6+ StringTrimFilter ,
7+ ToIntegerFilter ,
8+ ToLowerFilter ,
9+ )
10+ from flask_inputfilter .validators import (
11+ InArrayValidator ,
12+ IsIntegerValidator ,
13+ IsStringValidator ,
14+ RangeValidator ,
15+ )
16+
17+
18+ class PaginationInputFilter (InputFilter ):
19+ page = field (
20+ required = False ,
21+ default = 1 ,
22+ filters = [ToIntegerFilter ()],
23+ validators = [IsIntegerValidator (), RangeValidator (min_value = 1 )],
24+ )
25+
26+ per_page = field (
27+ required = False ,
28+ default = 20 ,
29+ filters = [ToIntegerFilter ()],
30+ validators = [
31+ IsIntegerValidator (),
32+ RangeValidator (min_value = 1 , max_value = 100 ),
33+ ],
34+ )
35+
36+ sort_by = field (
37+ required = False ,
38+ filters = [StringTrimFilter ()],
39+ validators = [IsStringValidator ()],
40+ )
41+
42+ order = field (
43+ required = False ,
44+ default = "asc" ,
45+ filters = [StringTrimFilter (), ToLowerFilter ()],
46+ validators = [IsStringValidator (), InArrayValidator (["asc" , "desc" ])],
47+ )
Original file line number Diff line number Diff line change 1+ from __future__ import annotations
2+
3+ from flask_inputfilter import InputFilter
4+ from flask_inputfilter .conditions import EqualCondition
5+ from flask_inputfilter .declarative import field
6+ from flask_inputfilter .enums import RegexEnum
7+ from flask_inputfilter .filters import (
8+ StringTrimFilter ,
9+ ToBooleanFilter ,
10+ ToLowerFilter ,
11+ )
12+ from flask_inputfilter .validators import (
13+ IsBooleanValidator ,
14+ IsStringValidator ,
15+ LengthValidator ,
16+ RegexValidator ,
17+ )
18+
19+
20+ class RegistrationInputFilter (InputFilter ):
21+ email = field (
22+ required = True ,
23+ filters = [StringTrimFilter (), ToLowerFilter ()],
24+ validators = [
25+ IsStringValidator (),
26+ RegexValidator (RegexEnum .EMAIL .value ),
27+ ],
28+ )
29+
30+ password = field (
31+ required = True ,
32+ validators = [
33+ IsStringValidator (),
34+ LengthValidator (min_length = 8 , max_length = 128 ),
35+ ],
36+ )
37+
38+ password_confirmation = field (
39+ required = True , validators = [IsStringValidator ()]
40+ )
41+
42+ terms_accepted = field (
43+ required = True ,
44+ filters = [ToBooleanFilter ()],
45+ validators = [IsBooleanValidator ()],
46+ )
47+
48+ _conditions = [EqualCondition ("password" , "password_confirmation" )]
You can’t perform that action at this time.
0 commit comments