6 changed files with 95 additions and 11 deletions
-
4docker/golang.Dockerfile
-
2src/domains/app/app.go
-
6src/internal/rest/app.go
-
27src/services/app.go
-
21src/validations/app_validation.go
-
46src/validations/app_validation_test.go
@ -0,0 +1,21 @@ |
|||
package validations |
|||
|
|||
import ( |
|||
"context" |
|||
"fmt" |
|||
pkgError "github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/error" |
|||
validation "github.com/go-ozzo/ozzo-validation/v4" |
|||
"regexp" |
|||
) |
|||
|
|||
func ValidateLoginWithCode(ctx context.Context, phoneNumber string) error { |
|||
// Combine validations using a single ValidateWithContext call
|
|||
err := validation.ValidateWithContext(ctx, &phoneNumber, |
|||
validation.Required, |
|||
validation.Match(regexp.MustCompile(`^\+?[0-9]{1,15}$`)), |
|||
) |
|||
if err != nil { |
|||
return pkgError.ValidationError(fmt.Sprintf("phone_number(%s): %s", phoneNumber, err.Error())) |
|||
} |
|||
return nil |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
package validations |
|||
|
|||
import ( |
|||
"context" |
|||
"testing" |
|||
) |
|||
|
|||
func TestValidateLoginWithCode(t *testing.T) { |
|||
type args struct { |
|||
phoneNumber string |
|||
} |
|||
tests := []struct { |
|||
name string |
|||
args args |
|||
wantErr bool |
|||
}{ |
|||
{ |
|||
name: "Phone with +", |
|||
args: args{phoneNumber: "+6281234567890"}, |
|||
wantErr: false, |
|||
}, |
|||
{ |
|||
name: "Phone without +", |
|||
args: args{phoneNumber: "621234567890"}, |
|||
wantErr: false, |
|||
}, |
|||
{ |
|||
name: "Phone with 0", |
|||
args: args{phoneNumber: "081234567890"}, |
|||
wantErr: false, |
|||
}, |
|||
{ |
|||
name: "Phone contains alphabet", |
|||
args: args{phoneNumber: "+6281234567890a"}, |
|||
wantErr: true, |
|||
}, |
|||
} |
|||
|
|||
for _, tt := range tests { |
|||
t.Run(tt.name, func(t *testing.T) { |
|||
if err := ValidateLoginWithCode(context.Background(), tt.args.phoneNumber); (err != nil) != tt.wantErr { |
|||
t.Errorf("ValidateLoginWithCode() error = %v, wantErr %v", err, tt.wantErr) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue