diff --git a/README.md b/README.md index 3162994..e3c1d3b 100644 --- a/README.md +++ b/README.md @@ -25,18 +25,26 @@ go get github.com/Rhyanz46/go-map-validator/map_validator - IPv4 field check - IPv4 Network check - regex on string validation +- you can create your own extension 🔥🔥🔥🔥 (example : https://github.com/Rhyanz46/go-map-validator/example_extensions/) - custom message : - on invalid regex message : ✅ + - on type not match message : ✅ - on null data message : ❌ - on max data message : ❌ - - on type not match message : ❌ - on enum value not match : ❌ ## On Progress -- extension code - validation for one data value only +## Custom Message Variables + +| No | Variable Name | +|:--:|:------------------:| +| 1 | `${field}` | +| 2 | `${expected_type}` | +| 3 | `${actual_type}` | + ## Road Map - avoiding same value in some field @@ -77,8 +85,8 @@ if err == nil { ```go func handleLogin(c echo.Context) error { jsonHttp, err := map_validator.NewValidateBuilder().SetRules(map[string]map_validator.Rules{ - "email": {Email: true, Max: map_validator.ToPointer[int](100)}, - "password": {Type: reflect.String, Min: map_validator.ToPointer[int](6), Max: map_validator.ToPointer[int](30)}, + "email": {Email: true, Max: map_validator.SetTotal(100)}, + "password": {Type: reflect.String, Min: map_validator.SetTotal(6), Max: map_validator.SetTotal(30)}, }).LoadJsonHttp(c.Request()) if err != nil { return c.JSON(http.StatusBadRequest, err) @@ -130,3 +138,43 @@ if testBind.JK != payload["jenis_kelamin"] { } ``` + + +### Example custom message +```go +payload := map[string]interface{}{"total": 12, "unit": "KG"} +validRole := map[string]map_validator.Rules{ + "total": { + Type: reflect.Int, + CustomMsg: map_validator.CustomMsg{ + OnTypeNotMatch: map_validator.SetMessage("Total must be a number, but your input is ${actual_type}"), + }, + }, +} +check, err := map_validator.NewValidateBuilder().SetRules(validRole).Load(payload) +if err != nil { + t.Errorf("Expected not have error, but got error : %s", err) +} +_, err = check.RunValidate() +if err != nil { + t.Errorf("Expected not have error, but got error : %s", err) +} +``` + + +### Example for regex validator +```go +payload := map[string]interface{}{"hp": "+62567888", "email": "dev@ariansaputra.com"} +validRole := map[string]map_validator.Rules{ + "hp": {RegexString: `^\+(?:\d{2}[- ]?\d{6}|\d{11})$`}, + "email": {RegexString: `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`}, +} +check, err := map_validator.NewValidateBuilder().SetRules(validRole).Load(payload) +if err != nil { + t.Errorf("Expected not have error, but got error : %s", err) +} +_, err = check.RunValidate() +if err != nil { + t.Errorf("Expected not have error, but got error : %s", err) +} +``` \ No newline at end of file diff --git a/cover.out b/cover.out index 20262d7..7df8663 100644 --- a/cover.out +++ b/cover.out @@ -6,20 +6,20 @@ github.com/Rhyanz46/go-map-validator/test/functions.go:10.64,11.27 1 1 github.com/Rhyanz46/go-map-validator/test/functions.go:11.27,12.17 1 1 github.com/Rhyanz46/go-map-validator/test/functions.go:12.17,14.4 1 1 github.com/Rhyanz46/go-map-validator/test/functions.go:16.2,16.8 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:8.56,10.39 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:8.60,10.39 2 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:10.39,12.3 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:13.2,56.16 3 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:56.16,58.3 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:59.2,60.16 2 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:60.16,62.3 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:64.2,64.12 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:67.56,68.33 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:67.60,68.33 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:68.33,70.3 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:71.2,71.19 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:74.54,75.31 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:74.58,75.31 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:75.31,77.3 1 0 github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:78.2,78.19 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:81.63,83.2 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/extra_operations.go:81.67,83.2 1 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:17.55,19.2 1 1 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:21.57,23.2 1 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:25.49,27.2 1 0 @@ -40,11 +40,11 @@ github.com/Rhyanz46/go-map-validator/map_validator/functions.go:66.55,70.37 4 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:70.37,71.24 1 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:71.24,74.4 2 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:76.2,76.44 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/functions.go:76.44,78.31 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/functions.go:78.31,80.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/functions.go:76.44,77.31 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/functions.go:77.31,80.4 2 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:82.2,82.42 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/functions.go:82.42,84.29 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/functions.go:84.29,86.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/functions.go:82.42,83.29 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/functions.go:83.29,86.4 2 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:88.2,88.24 1 0 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:91.123,96.36 2 1 github.com/Rhyanz46/go-map-validator/map_validator/functions.go:96.36,98.3 1 1 @@ -271,59 +271,88 @@ github.com/Rhyanz46/go-map-validator/map_validator/functions.go:563.2,563.14 1 1 github.com/Rhyanz46/go-map-validator/map_validator/implements.go:11.38,13.2 1 0 github.com/Rhyanz46/go-map-validator/map_validator/implements.go:15.75,16.27 1 0 github.com/Rhyanz46/go-map-validator/map_validator/implements.go:16.27,17.33 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:19.2,23.3 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:26.49,29.2 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:31.76,34.35 3 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:34.35,36.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:37.2,37.27 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:37.27,38.38 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:38.38,40.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:42.2,42.12 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:44.84,45.30 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:45.30,46.53 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:46.53,48.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:50.2,54.8 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:57.80,58.18 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:58.18,60.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:61.2,61.14 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:61.14,63.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:64.2,66.16 3 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:66.16,67.27 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:67.27,69.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:70.3,70.41 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:72.2,72.30 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:72.30,73.56 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:73.56,75.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:77.2,81.8 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:84.80,85.18 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:85.18,87.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:88.2,88.14 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:88.14,90.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:91.2,93.38 3 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:93.38,95.16 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:95.16,97.18 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:97.18,99.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:100.4,100.19 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:100.19,102.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:102.10,104.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:105.9,106.40 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:106.40,107.31 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:107.31,109.11 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:112.4,112.20 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:112.20,114.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:115.4,116.19 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:116.19,118.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:118.10,120.5 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:123.2,123.30 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:123.30,124.56 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:124.56,126.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:128.2,132.8 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:135.69,136.39 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:136.39,138.3 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:139.2,141.48 3 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:141.48,143.17 2 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:143.17,145.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:146.3,146.18 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:146.18,148.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:148.9,150.4 1 0 -github.com/Rhyanz46/go-map-validator/map_validator/implements.go:152.2,158.8 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:20.2,23.37 3 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:23.37,26.3 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:27.2,27.22 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:27.22,29.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:30.2,34.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:37.49,40.2 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:42.74,45.2 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:47.76,50.35 3 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:50.35,52.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:53.2,53.27 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:53.27,54.38 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:54.38,56.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:58.2,58.12 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:60.84,61.30 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:61.30,62.53 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:62.53,64.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:66.2,66.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:66.37,68.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:68.17,70.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:72.2,72.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:72.37,74.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:74.17,76.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:78.2,83.8 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:86.80,87.18 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:87.18,89.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:90.2,90.14 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:90.14,92.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:93.2,93.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:93.37,95.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:95.17,97.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:99.2,101.16 3 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:101.16,102.27 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:102.27,104.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:105.3,105.41 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:107.2,107.30 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:107.30,108.56 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:108.56,110.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:112.2,112.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:112.37,114.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:114.17,116.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:118.2,123.8 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:126.80,127.18 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:127.18,129.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:130.2,130.14 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:130.14,132.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:133.2,133.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:133.37,135.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:135.17,137.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:139.2,141.38 3 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:141.38,143.16 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:143.16,145.18 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:145.18,147.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:148.4,148.19 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:148.19,150.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:150.10,152.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:153.9,154.40 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:154.40,155.31 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:155.31,157.11 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:160.4,160.20 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:160.20,162.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:163.4,164.19 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:164.19,166.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:166.10,168.5 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:171.2,171.30 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:171.30,172.56 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:172.56,174.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:176.2,176.37 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:176.37,178.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:178.17,180.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:182.2,187.8 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:190.73,191.39 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:191.39,193.3 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:194.2,196.37 3 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:196.37,198.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:198.17,200.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:202.2,202.48 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:202.48,204.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:204.17,206.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:207.3,207.18 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:207.18,209.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:209.9,211.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:213.2,220.37 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:220.37,222.17 2 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:222.17,224.4 1 0 +github.com/Rhyanz46/go-map-validator/map_validator/implements.go:226.2,226.23 1 0 diff --git a/example_extensions/example.go b/example_extensions/example.go new file mode 100644 index 0000000..095c933 --- /dev/null +++ b/example_extensions/example.go @@ -0,0 +1,54 @@ +package example_extensions + +import "github.com/Rhyanz46/go-map-validator/map_validator" + +type ExampleExtension struct { + rules *map[string]map_validator.Rules + data interface{} + resetAfterValidation bool + extraData *map_validator.ExtraOperationData +} + +func (e *ExampleExtension) SetRoles(rules *map[string]map_validator.Rules) { + e.rules = rules +} + +func (e *ExampleExtension) BeforeLoad(data interface{}) error { + //TODO implement me + //panic("implement me") + return nil +} + +func (e *ExampleExtension) AfterLoad(data *map[string]interface{}) error { + //TODO implement me + //panic("implement me") + return nil +} + +func (e *ExampleExtension) BeforeValidation(data *map[string]interface{}) error { + //TODO implement me + //panic("implement me") + return nil +} + +func (e *ExampleExtension) AfterValidation(data *map[string]interface{}) error { + if e.resetAfterValidation { + empty := map[string]interface{}{} + *data = empty + } + return nil +} + +func (e *ExampleExtension) SetExtraData(data *map_validator.ExtraOperationData) map_validator.ExtensionType { + e.extraData = data + return e +} + +func (e *ExampleExtension) ResetAfterValidation() *ExampleExtension { + e.resetAfterValidation = true + return e +} + +func ManipulatorExt() *ExampleExtension { + return &ExampleExtension{} +} diff --git a/test/extension_test.go b/test/extension_test.go index 61d2e8e..010caae 100644 --- a/test/extension_test.go +++ b/test/extension_test.go @@ -1,70 +1,18 @@ package test import ( + "github.com/Rhyanz46/go-map-validator/example_extensions" "github.com/Rhyanz46/go-map-validator/map_validator" "testing" ) -type ExampleExtension struct { - rules *map[string]map_validator.Rules - data interface{} - resetAfterValidation bool - extraData *map_validator.ExtraOperationData -} - -func (e *ExampleExtension) SetRoles(rules *map[string]map_validator.Rules) { - e.rules = rules -} - -func (e *ExampleExtension) BeforeLoad(data interface{}) error { - //TODO implement me - //panic("implement me") - return nil -} - -func (e *ExampleExtension) AfterLoad(data *map[string]interface{}) error { - //TODO implement me - //panic("implement me") - return nil -} - -func (e *ExampleExtension) BeforeValidation(data *map[string]interface{}) error { - //TODO implement me - //panic("implement me") - return nil -} - -func (e *ExampleExtension) AfterValidation(data *map[string]interface{}) error { - //TODO implement me - //panic("implement me") - if e.resetAfterValidation { - empty := map[string]interface{}{} - *data = empty - } - return nil -} - -func (e *ExampleExtension) SetExtraData(data *map_validator.ExtraOperationData) map_validator.ExtensionType { - e.extraData = data - return e -} - -func (e *ExampleExtension) ResetAfterValidation() *ExampleExtension { - e.resetAfterValidation = true - return e -} - -func ManipulatorExt() *ExampleExtension { - return &ExampleExtension{} -} - func TestExtension(t *testing.T) { payload := map[string]interface{}{"hp": "+62567888", "email": "dev@ariansaputra.com"} validRole := map[string]map_validator.Rules{ "hp": {RegexString: `^\+(?:\d{2}[- ]?\d{6}|\d{11})$`}, "email": {RegexString: `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`}, } - swaggerExt := ManipulatorExt().ResetAfterValidation() + swaggerExt := example_extensions.ManipulatorExt().ResetAfterValidation() check, err := map_validator. NewValidateBuilder(). @@ -89,7 +37,7 @@ func TestInvalidExtension(t *testing.T) { "hp": {RegexString: `^\+(?:\d{2}[- ]?\d{6}|\d{11})$`}, "email": {RegexString: `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`}, } - swaggerExt := ManipulatorExt() + swaggerExt := example_extensions.ManipulatorExt() check, err := map_validator. NewValidateBuilder().