modified: serv_nginx/api_bb/internal/service/user_service.go

implement UpdateProfile for userHeandler and for UserService.
This commit is contained in:
2025-10-20 00:38:58 +05:00
parent e3f77f3a84
commit 9e2051cbfe
@@ -22,9 +22,39 @@ type userService struct {
logger logger.LoggerInterface
}
// UpdateProfile implements UserService.
func (s userService) UpdateProfile(user *models.User) error {
panic("unimplemented")
// Обновление профиля
func (s *userService) UpdateProfile(user *models.User) error {
s.logger.Info("Updating user profile",
zap.Uint("user_id", user.ID),
)
// Проверяем, что пользователь существует
existingUser, err := s.userRepo.FindByID(user.ID)
if err != nil {
s.logger.Error("User not found for profile update",
zap.Uint("user_id", user.ID),
zap.Error(err),
)
return fmt.Errorf("user not found")
}
// Убеждаемся, что email не меняется
user.Email = existingUser.Email
user.Avatar = existingUser.Avatar
updateData := &models.User{
ID: user.ID,
FirstName: user.FirstName,
LastName: user.LastName,
Avatar: user.Avatar,
Phone: user.Phone,
Experience: user.Experience,
Goals: user.Goals,
Newsletter: user.Newsletter,
UpdatedAt: time.Now(),
}
return s.userRepo.UpdateExcludeEmail(updateData)
}
func NewUserService(userRepo repository.UserRepository, jwtService JWTService, log logger.LoggerInterface) userService {