11//
22// ALValidatableTextFieldType.swift
3- // ALTextFields
3+ // ALFormInput
44//
55// Created by AppLogist on 10.04.2020.
66// Copyright © 2020 AppLogist. All rights reserved.
77//
88
99import UIKit
10+ import SwiftValidatorNew
1011
1112public enum ALValidatableTextFieldType : String {
1213 case email = " Email "
@@ -21,25 +22,39 @@ public enum ALValidatableTextFieldType: String {
2122 case optional
2223
2324
25+ private var emailRule : EmailRule {
26+ EmailRule ( message: " Geçersiz E-Posta Adresi " )
27+ }
28+
29+ private var requiredRule : RequiredRule {
30+ RequiredRule ( message: " Bu alan zorunludur " )
31+ }
32+
33+ private func minLengthRule( _ length: Int ) -> MinLengthRule {
34+ MinLengthRule ( length: length, message: " En %ld karakter olmalıdır " )
35+ }
36+
37+ private func exactLengthRule( _ length: Int ) -> ExactLengthRule {
38+ ExactLengthRule ( length: length, message: " %ld karakter olmalıdır " )
39+ }
40+
2441 public var rules : [ Rule ] {
2542 switch self {
2643 case . email:
27- return [ RequiredRule ( ) , EmailRule ( ) ]
44+ return [ requiredRule , emailRule ]
2845 case . password:
29- return [ RequiredRule ( ) , PasswordRule ( ) ]
30- case . name:
31- return [ RequiredRule ( ) , MinLengthRule ( length: 3 ) ]
32- case . surname:
33- return [ RequiredRule ( ) , MinLengthRule ( length: 3 ) ]
46+ return [ requiredRule, PasswordRule ( ) ]
47+ case . name, . surname:
48+ return [ requiredRule, minLengthRule ( 3 ) ]
3449 case . phoneNumber:
35- return [ RequiredRule ( ) , CustomPhoneNumberRule ( ) ]
50+ return [ requiredRule , CustomPhoneNumberRule ( ) ]
3651 case . creditCardNumber:
37- return [ RequiredRule ( ) ,
52+ return [ requiredRule ,
3853 CardNumberRule ( ) ,
3954 ReplacedExactLengthRule ( length: 16 , willRemoveString: " " ) ]
4055 case . tcIdentityNo:
41- return [ RequiredRule ( ) ,
42- ExactLengthRule ( length : 11 ) ,
56+ return [ requiredRule ,
57+ exactLengthRule ( 11 ) ,
4358 TCIdentityRule ( ) ]
4459 default :
4560 return [ ]
0 commit comments