-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.go
54 lines (46 loc) · 1.48 KB
/
example.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"fmt"
mask "go-masker/mask"
)
// Mask Is the struct tag to select fields which are to be masked
type ExampleJson struct {
Name string `json:"name"`
SSN *int `json:"ssn" mask:""`
StudentNumber *[]int32 `json:"studentNumber"`
AccountNumber []int64 `json:"accountNumber" mask:""`
Percentage float32 `json:"percentage" mask:""`
}
type ExampleXml struct {
Name string `xml:"name"`
SSN *int `xml:"ssn" mask:""`
StudentNumber *[]int32 `xml:"studentNumber"`
AccountNumber []int64 `xml:"accountNumber" mask:""`
Percentage float32 `xml:"percentage" mask:""`
}
func main() {
ssn := 1234567
ssnarray := []int32{1234}
jsonInput := ExampleJson{
Name: "niraj",
SSN: &ssn,
StudentNumber: &ssnarray,
AccountNumber: []int64{888888, 123456},
Percentage: 23.056,
}
xmlInput := ExampleXml{
Name: "niraj",
SSN: &ssn,
StudentNumber: &ssnarray,
AccountNumber: []int64{888888, 123456},
Percentage: 23.056,
}
// Prints Masked Json
maskedJson := mask.Mask(jsonInput, "mask")
// {"name":"niraj","ssn":0,"studentNumber":[1234],"accountNumber":[0,0],"percentage":0}
// Prints Masked XML
maskedXml := mask.MaskToXml(xmlInput, "mask")
// <ExampleXml><name>niraj</name><ssn>0</ssn><studentNumber>1234</studentNumber><accountNumber>0</accountNumber><accountNumber>0</accountNumber><percentage>0</percentage></ExampleXml>
fmt.Println(maskedJson)
fmt.Println(maskedXml)
}