2025-02-28 12:18:47 +08:00
|
|
|
package userrepository
|
|
|
|
|
|
|
|
|
|
import (
|
2025-03-14 12:41:11 +08:00
|
|
|
"fmt"
|
2025-03-05 21:21:44 +08:00
|
|
|
userdomain "legalgo-BE-go/internal/domain/user"
|
2025-02-28 12:18:47 +08:00
|
|
|
)
|
|
|
|
|
|
2025-03-14 13:00:12 +08:00
|
|
|
func (ur *accessor) GetUserProfile(id string) (*userdomain.UserProfile, error) {
|
2025-03-05 21:21:44 +08:00
|
|
|
var user *userdomain.User
|
2025-02-28 12:18:47 +08:00
|
|
|
|
2025-03-14 13:00:12 +08:00
|
|
|
if id == "" {
|
2025-03-14 12:41:11 +08:00
|
|
|
return nil, fmt.Errorf("email is empty")
|
2025-02-28 12:18:47 +08:00
|
|
|
}
|
|
|
|
|
|
2025-03-06 23:55:46 +08:00
|
|
|
if err := ur.db.
|
2025-03-05 21:21:44 +08:00
|
|
|
Preload("Subscribe").
|
|
|
|
|
Preload("Subscribe.SubscribePlan").
|
2025-03-14 13:00:12 +08:00
|
|
|
First(&user, "id = ?", id).
|
2025-03-05 21:21:44 +08:00
|
|
|
Error; err != nil {
|
2025-02-28 12:18:47 +08:00
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-05 21:21:44 +08:00
|
|
|
userProfile := &userdomain.UserProfile{
|
|
|
|
|
ID: user.ID,
|
|
|
|
|
Email: user.Email,
|
|
|
|
|
Phone: user.Phone,
|
|
|
|
|
Subscribe: user.Subscribe,
|
2025-03-17 22:50:37 +08:00
|
|
|
CreatedAt: user.CreatedAt,
|
2025-03-05 21:21:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return userProfile, nil
|
2025-02-28 12:18:47 +08:00
|
|
|
}
|