mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-22 10:33:24 +00:00
a788553137
- Continuity email layout fixes and improvments. - Replace haikunator with email local part for visitor names, fallback to "Visitor" - Add optional website_url config field for "go to chat" link in continuity email footer - Remove unused / unncessary i18n keys.
35 lines
964 B
Go
35 lines
964 B
Go
package user
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/abhinavxd/libredesk/internal/user/models"
|
|
"github.com/volatiletech/null/v9"
|
|
)
|
|
|
|
// CreateVisitor creates a new visitor user.
|
|
func (u *Manager) CreateVisitor(user *models.User) error {
|
|
// Normalize email address.
|
|
user.Email = null.NewString(strings.ToLower(user.Email.String), user.Email.Valid)
|
|
|
|
if user.FirstName == "" && user.LastName == "" {
|
|
if user.Email.Valid && user.Email.String != "" {
|
|
user.FirstName = strings.Split(user.Email.String, "@")[0]
|
|
} else {
|
|
user.FirstName = "Visitor"
|
|
}
|
|
}
|
|
|
|
if err := u.q.InsertVisitor.Get(user, user.Email, user.FirstName, user.LastName, user.CustomAttributes); err != nil {
|
|
u.lo.Error("error inserting contact", "error", err)
|
|
return fmt.Errorf("insert contact: %w", err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetVisitor retrieves a visitor user by ID
|
|
func (u *Manager) GetVisitor(id int) (models.User, error) {
|
|
return u.Get(id, "", []string{models.UserTypeVisitor})
|
|
}
|