modified: internal/handlers/user.go

modified:   internal/models/user.go
	modified:   internal/repository/user_repository.go
	modified:   internal/service/auth_service.go
	new file:   internal/service/user_service.go

	modified:   ../../begushiybashkir/bbvue/src/views/ProfileEdit.vue
fix bag not editable profile
This commit is contained in:
2025-10-12 10:16:52 +05:00
parent 8447dbe882
commit 38bee8e077
5 changed files with 122 additions and 76 deletions
@@ -3,8 +3,6 @@ package service
import (
"errors"
"fmt"
"time"
"api_bb/internal/models"
"api_bb/internal/repository"
@@ -38,57 +36,6 @@ func NewAuthService(userRepo repository.UserRepository, jwtService JWTService, l
}
}
func (s *authService) 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.Warn("User not found for profile update",
zap.Uint("user_id", user.ID),
zap.Error(err),
)
return fmt.Errorf("user not found")
}
updateData := &models.User{
ID: existingUser.ID,
FirstName: user.FirstName,
LastName: user.LastName,
Phone: user.Phone,
Experience: user.Experience,
Goals: user.Goals,
Newsletter: user.Newsletter,
UpdatedAt: time.Now(),
}
s.logger.Debug("Profile update data prepared",
zap.Uint("user_id", user.ID),
zap.String("first_name", updateData.FirstName),
zap.String("last_name", updateData.LastName),
)
if err := s.userRepo.Update(updateData); err != nil {
s.logger.Error("Failed to update user profile",
zap.Uint("user_id", user.ID),
zap.Error(err),
)
return err
}
user.Email = existingUser.Email
user.Password = existingUser.Password
user.Role = existingUser.Role
user.CreatedAt = existingUser.CreatedAt
user.UpdatedAt = updateData.UpdatedAt
s.logger.Info("User profile updated successfully",
zap.Uint("user_id", user.ID),
)
return nil
}
func (s *authService) Register(user *models.User) error {
s.logger.Info("Registering new user",
@@ -174,20 +121,3 @@ func min(a, b int) int {
}
return b
}
func (s *authService) GetUserProfile(userID uint) (*models.User, error) {
s.logger.Debug("Getting user profile",
zap.Uint("user_id", userID),
)
user, err := s.userRepo.FindByID(userID)
if err != nil {
s.logger.Warn("Failed to get user profile",
zap.Uint("user_id", userID),
zap.Error(err),
)
return nil, err
}
return user, nil
}