modified: serv_nginx/api_bb/internal/service/user_service.go
implement UpdateProfile for userHeandler and for UserService.
This commit is contained in:
@@ -22,9 +22,39 @@ type userService struct {
|
|||||||
logger logger.LoggerInterface
|
logger logger.LoggerInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateProfile implements UserService.
|
// Обновление профиля
|
||||||
func (s userService) UpdateProfile(user *models.User) error {
|
func (s *userService) UpdateProfile(user *models.User) error {
|
||||||
panic("unimplemented")
|
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 {
|
func NewUserService(userRepo repository.UserRepository, jwtService JWTService, log logger.LoggerInterface) userService {
|
||||||
|
|||||||
Reference in New Issue
Block a user