Compare commits

...

1 Commits

Author SHA1 Message Date
DacongDA
eda742a848 feat: support e164 phone number in GetUserByPhone() (#4099) 2025-08-19 02:19:15 +08:00
3 changed files with 20 additions and 1 deletions

View File

@@ -510,6 +510,8 @@ func GetUserByPhone(owner string, phone string) (*User, error) {
return nil, nil
}
phone = util.GetSeperatedPhone(phone)
user := User{Owner: owner, Phone: phone}
existed, err := ormer.Engine.Get(&user)
if err != nil {
@@ -528,6 +530,8 @@ func GetUserByPhoneOnly(phone string) (*User, error) {
return nil, nil
}
phone = util.GetSeperatedPhone(phone)
user := User{Phone: phone}
existed, err := ormer.Engine.Get(&user)
if err != nil {

View File

@@ -80,7 +80,8 @@ func GetUserByFields(organization string, field string) (*User, error) {
}
// check phone
user, err = GetUserByField(organization, "phone", field)
phone := util.GetSeperatedPhone(field)
user, err = GetUserByField(organization, "phone", phone)
if user != nil || err != nil {
return user, err
}

View File

@@ -30,6 +30,7 @@ import (
"unicode"
"github.com/google/uuid"
"github.com/nyaruka/phonenumbers"
)
func ParseInt(s string) int {
@@ -278,6 +279,19 @@ func GetMaskedPhone(phone string) string {
return rePhone.ReplaceAllString(phone, "$1****$2")
}
func GetSeperatedPhone(phone string) string {
if strings.HasPrefix(phone, "+") {
phoneNumberParsed, err := phonenumbers.Parse(phone, "")
if err != nil {
return phone
}
phone = fmt.Sprintf("%d", phoneNumberParsed.GetNationalNumber())
}
return phone
}
func GetMaskedEmail(email string) string {
if email == "" {
return ""