modified: serv_nginx/api_bb/internal/handlers/handler_util.go

modified:   serv_nginx/api_bb/internal/handlers/handlers.go
	modified:   serv_nginx/api_bb/internal/handlers/user.go
	modified:   serv_nginx/api_bb/internal/service/user_service.go
change responseData for getProfile endPoint api_bb
This commit is contained in:
2025-10-13 04:55:37 +05:00
parent 61e8415f8b
commit 82c644dc9c
4 changed files with 14 additions and 0 deletions
@@ -11,6 +11,7 @@ func toUserResponse(user *models.User) UserResponse {
Email: user.Email, Email: user.Email,
FirstName: user.FirstName, FirstName: user.FirstName,
LastName: user.LastName, LastName: user.LastName,
Avatar: user.Avatar,
Phone: user.Phone, Phone: user.Phone,
Experience: user.Experience, Experience: user.Experience,
Goals: user.Goals, Goals: user.Goals,
@@ -13,6 +13,7 @@ import (
type Handler struct { type Handler struct {
healthHandler *HealthHandler healthHandler *HealthHandler
authHandler *AuthHandler authHandler *AuthHandler
userHandler *UserHandler
// Здесь будут добавлены другие обработчики // Здесь будут добавлены другие обработчики
// userHandler *UserHandler // userHandler *UserHandler
// eventHandler *EventHandler // eventHandler *EventHandler
@@ -29,14 +30,17 @@ func NewHandler(db *gorm.DB, cfg *config.Config) *Handler {
// Инициализация сервисов // Инициализация сервисов
jwtService := service.NewJWTService(cfg.JWTSecret) jwtService := service.NewJWTService(cfg.JWTSecret)
authService := service.NewAuthService(userRepo, jwtService, baseLogger) authService := service.NewAuthService(userRepo, jwtService, baseLogger)
userService := service.NewUserService(userRepo, jwtService, baseLogger)
// Инициализация обработчиков // Инициализация обработчиков
healthHandler := NewHealthHandler() healthHandler := NewHealthHandler()
authHandler := NewAuthHandler(authService, jwtService) authHandler := NewAuthHandler(authService, jwtService)
userHandler := NewUserHandler(&userService)
return &Handler{ return &Handler{
healthHandler: healthHandler, healthHandler: healthHandler,
authHandler: authHandler, authHandler: authHandler,
userHandler: userHandler,
} }
} }
@@ -48,3 +52,7 @@ func (h *Handler) HealthHandler() *HealthHandler {
func (h *Handler) AuthHandler() *AuthHandler { func (h *Handler) AuthHandler() *AuthHandler {
return h.authHandler return h.authHandler
} }
func (h *Handler) UserHandler() *UserHandler { // ДОБАВЛЕН геттер для UserHandler
return h.userHandler
}
@@ -44,6 +44,7 @@ type UserResponse struct {
Email string `json:"email"` Email string `json:"email"`
FirstName string `json:"firstName"` FirstName string `json:"firstName"`
LastName string `json:"lastName"` LastName string `json:"lastName"`
Avatar string `json:"avatar"`
Phone string `json:"phone"` Phone string `json:"phone"`
Experience string `json:"experience"` Experience string `json:"experience"`
Goals string `json:"goals"` Goals string `json:"goals"`
@@ -53,6 +54,7 @@ type UserResponse struct {
UpdatedAt time.Time `json:"updated_at"` UpdatedAt time.Time `json:"updated_at"`
} }
func (h *UserHandler) GetProfile(w http.ResponseWriter, r *http.Request) { func (h *UserHandler) GetProfile(w http.ResponseWriter, r *http.Request) {
h.logger.Info("handling get profile request", h.logger.Info("handling get profile request",
@@ -71,6 +73,7 @@ func (h *UserHandler) GetProfile(w http.ResponseWriter, r *http.Request) {
h.logger.Info("profile retrieved successfully", h.logger.Info("profile retrieved successfully",
zap.Uint("user_id", user.ID), zap.Uint("user_id", user.ID),
zap.String("email", user.Email), zap.String("email", user.Email),
zap.String("avatar", user.Avatar),
) )
utils.RespondWithJSON(w, http.StatusOK, toUserResponse(user)) utils.RespondWithJSON(w, http.StatusOK, toUserResponse(user))
@@ -54,11 +54,13 @@ func (s *authService) UpdateProfile(user *models.User) error {
// Убеждаемся, что email не меняется // Убеждаемся, что email не меняется
user.Email = existingUser.Email user.Email = existingUser.Email
user.Avatar = existingUser.Avatar
updateData := &models.User{ updateData := &models.User{
ID: user.ID, ID: user.ID,
FirstName: user.FirstName, FirstName: user.FirstName,
LastName: user.LastName, LastName: user.LastName,
Avatar: user.Avatar,
Phone: user.Phone, Phone: user.Phone,
Experience: user.Experience, Experience: user.Experience,
Goals: user.Goals, Goals: user.Goals,