Skip to content
This repository was archived by the owner on Aug 30, 2025. It is now read-only.

Commit e1140e2

Browse files
committed
first name update
1 parent 009009e commit e1140e2

File tree

4 files changed

+40
-76
lines changed

4 files changed

+40
-76
lines changed

worker/internal/benthos/transformers/email.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ func init() {
1616

1717
spec := bloblang.NewPluginSpec().Param(bloblang.NewStringParam("email")).Param(bloblang.NewBoolParam("preserve_length")).Param(bloblang.NewBoolParam("preserve_domain"))
1818

19-
// register the plugin
2019
err := bloblang.RegisterFunctionV2("emailtransformer", spec, func(args *bloblang.ParsedParams) (bloblang.Function, error) {
2120

2221
email, err := args.GetString("email")
@@ -47,7 +46,6 @@ func init() {
4746

4847
}
4948

50-
// generates a random email address
5149
func GenerateEmail(email string, preserveLength, preserveDomain bool) (string, error) {
5250

5351
var returnValue string

worker/internal/benthos/transformers/firstName.go

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,25 @@ var (
2626
func init() {
2727

2828
spec := bloblang.NewPluginSpec().
29-
Param(bloblang.NewBoolParam("preserve_length"))
29+
Param(bloblang.NewStringParam(("name"))).Param(bloblang.NewBoolParam("preserve_length"))
3030

3131
// register the plugin
32-
err := bloblang.RegisterMethodV2("firstnametransformer", spec, func(args *bloblang.ParsedParams) (bloblang.Method, error) {
32+
err := bloblang.RegisterFunctionV2("firstnametransformer", spec, func(args *bloblang.ParsedParams) (bloblang.Function, error) {
33+
34+
name, err := args.GetString("name")
35+
if err != nil {
36+
return nil, err
37+
}
3338

3439
preserveLength, err := args.GetBool("preserve_length")
3540
if err != nil {
3641
return nil, err
3742
}
38-
return bloblang.StringMethod(func(s string) (any, error) {
39-
res, err := GenerateFirstName(s, preserveLength)
43+
return func() (any, error) {
44+
res, err := GenerateFirstName(name, preserveLength)
4045
return res, err
41-
}), nil
46+
}, nil
47+
4248
})
4349

4450
if err != nil {
@@ -50,11 +56,16 @@ func init() {
5056
// Generates a random first name
5157
func GenerateFirstName(name string, preserveLength bool) (string, error) {
5258

53-
if !preserveLength {
54-
res, err := GenerateFirstNameWithRandomLength()
55-
return res, err
59+
if name != "" {
60+
if !preserveLength {
61+
res, err := GenerateFirstNameWithRandomLength()
62+
return res, err
63+
} else {
64+
res, err := GenerateFirstNameWithLength(name)
65+
return res, err
66+
}
5667
} else {
57-
res, err := GenerateFirstNameWithLength(name)
68+
res, err := GenerateFirstNameWithRandomLength()
5869
return res, err
5970
}
6071
}
@@ -72,7 +83,6 @@ func GenerateFirstNameWithRandomLength() (string, error) {
7283

7384
names := data.Names
7485

75-
// get a random length from the first_names.json file
7686
var nameLengths []int
7787

7888
for _, v := range names {
@@ -107,7 +117,6 @@ func GenerateFirstNameWithRandomLength() (string, error) {
107117
return returnValue, nil
108118
}
109119

110-
// main transformer logic goes here
111120
func GenerateFirstNameWithLength(fn string) (string, error) {
112121

113122
var returnValue string

worker/internal/benthos/transformers/firstName_test.go

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package neosync_transformers
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/benthosdev/benthos/v4/public/bloblang"
@@ -39,15 +40,27 @@ func TestGenerateFirstNamePreserveLengthFalse(t *testing.T) {
3940
assert.IsType(t, "", res, "The first name should be a string") // Check if the result is a string
4041
}
4142

42-
func TestFirstNameTransformer(t *testing.T) {
43-
mapping := `root = this.firstnametransformer(true)`
43+
func TestFirstNameTransformerWithValue(t *testing.T) {
44+
testVal := "bill"
45+
mapping := fmt.Sprintf(`root = firstnametransformer(%q,true)`, testVal)
4446
ex, err := bloblang.Parse(mapping)
4547
assert.NoError(t, err, "failed to parse the first name transformer")
4648

47-
testVal := "bill"
48-
49-
res, err := ex.Query(testVal)
49+
res, err := ex.Query(nil)
5050
assert.NoError(t, err)
5151

5252
assert.Len(t, res.(string), len(testVal), "Generated first name must be as long as input first name")
5353
}
54+
55+
func TestFirstNameTransformerNoValue(t *testing.T) {
56+
testVal := ""
57+
mapping := fmt.Sprintf(`root = firstnametransformer(%q,true)`, testVal)
58+
ex, err := bloblang.Parse(mapping)
59+
assert.NoError(t, err, "failed to parse the first name transformer")
60+
61+
res, err := ex.Query(nil)
62+
assert.NoError(t, err)
63+
64+
assert.IsType(t, res.(string), "", "Generated first name must be a string")
65+
assert.NotEmpty(t, res.(string))
66+
}

worker/pkg/workflows/datasync/activities/activities.go

Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -567,75 +567,19 @@ root.{destination_col} = transformerfunction(args)
567567
func computeMutationFunction(col *mgmtv1alpha1.JobMapping) (string, error) {
568568

569569
switch col.Transformer.Value {
570-
case "latitude":
571-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
572-
case "longitude":
573-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
574-
case "date":
575-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
576-
case "time_string":
577-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
578-
case "month_name":
579-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
580-
case "year_string":
581-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
582-
case "day_of_week":
583-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
584-
case "day_of_month":
585-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
586-
case "century":
587-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
588-
case "timezone":
589-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
590-
case "time_period":
591-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
592570
case "email":
593571
pd := col.Transformer.Config.GetEmailConfig().PreserveDomain
594572
pl := col.Transformer.Config.GetEmailConfig().PreserveLength
595-
return fmt.Sprintf("emailtransformer(%s,%t, %t)", col.Transformer.Value, pd, pl), nil
596-
case "mac_address":
597-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
598-
case "domain_name":
599-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
600-
case "url":
601-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
602-
case "username":
603-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
604-
case "ipv4":
605-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
606-
case "ipv6":
607-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
608-
case "password":
609-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
610-
case "jwt":
611-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
612-
case "word":
613-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
614-
case "sentence":
615-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
616-
case "paragraph":
617-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
618-
case "title_male":
619-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
620-
case "title_female":
621-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
573+
return fmt.Sprintf("emailtransformer(%s,%t, %t)", col.Column, pd, pl), nil
622574
case "first_name":
623575
pl := col.Transformer.Config.GetFirstNameConfig().PreserveLength
624-
return fmt.Sprintf("this.%s.firstnametransformer(%t)", col.Column, pl), nil
625-
case "first_name_female":
626-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
576+
return fmt.Sprintf("firstnametransformer(%s,%t)", col.Column, pl), nil
627577
case "last_name":
628578
pl := col.Transformer.Config.GetLastNameConfig().PreserveLength
629579
return fmt.Sprintf("this.%s.lastnametransformer(%t)", col.Column, pl), nil
630580
case "full_name":
631581
pl := col.Transformer.Config.GetFullNameConfig().PreserveLength
632582
return fmt.Sprintf("this.%s.fullnametransformer(%t)", col.Column, pl), nil
633-
case "chinese_first_name":
634-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
635-
case "chinese_last_name":
636-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
637-
case "chinese_name":
638-
return fmt.Sprintf("fake(%q)", col.Transformer.Value), nil
639583
case "phone_number":
640584
pl := col.Transformer.Config.GetPhoneNumberConfig().PreserveLength
641585
ef := col.Transformer.Config.GetPhoneNumberConfig().E164Format

0 commit comments

Comments
 (0)