Skip to content

Commit

Permalink
Merge pull request #12 from Rhyanz46/extension
Browse files Browse the repository at this point in the history
move example extension to another package
  • Loading branch information
Rhyanz46 authored Feb 11, 2024
2 parents 14f194d + 1635915 commit 3866020
Show file tree
Hide file tree
Showing 4 changed files with 202 additions and 123 deletions.
56 changes: 52 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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": "[email protected]"}
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)
}
```
157 changes: 93 additions & 64 deletions cover.out
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
54 changes: 54 additions & 0 deletions example_extensions/example.go
Original file line number Diff line number Diff line change
@@ -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{}
}
Loading

0 comments on commit 3866020

Please sign in to comment.