Refactoring
Opened this issue · 0 comments
m1ome commented
Currently library looks pretty messy, in e.g.
func main() {
f, err := os.Open("dump.sql")
if err != nil {
panic(err)
}
target := &misty.Target{
TableName: "public.users",
Columns: []*misty.TargetColumn{
{
Name: "username",
Value: obfuscateHandle,
},
{
Name: "email",
Value: obfuscateEmail,
},
},
}
err = misty.Obfuscate(f, os.Stdout, []*misty.Target{target})
if err != nil {
log.Println(err)
}
}
func obfuscateHandle(_ []byte) []byte {
return []byte(fake.UserName())
}
func obfuscateEmail(_ []byte) []byte {
return []byte(fake.EmailAddress())
}
I think more cleaner way will be
func main() {
f, err := os.Open("dump.sql")
if err != nil {
panic(err)
}
target1 := misty.NewTarget("public.admins")
target2.AddRule("username", obfuscateHandle)
target2.AddRule("email", obfuscateEmail)
target2 := misty.NewTarget("public.users")
target2.AddRule("username", obfuscateHandle)
target2.AddRule("email", obfuscateEmail)
if err := misty.Obfuscate(Options{
Source: f,
Output: os.Stdout,
}, target1, target2); err != nil {
log.Println(err)
}
}
func obfuscateHandle(_ []byte) []byte {
return []byte(fake.UserName())
}
func obfuscateEmail(_ []byte) []byte {
return []byte(fake.EmailAddress())
}
Cleaner i think.