modified: serv_nginx/api_bb/internal/handlers/user.go
modified: serv_nginx/api_bb/internal/repository/user_repository.go modified: serv_nginx/api_bb/internal/service/user_service.go modified: serv_nginx/bbvue/src/views/Members.vue set new page for members frontend add new rounter path getAllUsers into backend
This commit is contained in:
@@ -35,7 +35,7 @@ func (h *UserHandler) Routes() chi.Router {
|
||||
|
||||
r.Get("/profile", h.GetProfile)
|
||||
r.Post("/editProfile", h.UpdateProfile)
|
||||
// Убрали маршрут для обслуживания аватаров - теперь это делает AvatarHandler
|
||||
r.Get("/", h.GetUsers) // 👈 ДОБАВЛЯЕМ НОВЫЙ ЭНДПОЙНТ
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -54,6 +54,43 @@ type UserResponse struct {
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
// GetUsers возвращает список всех пользователей
|
||||
func (h *UserHandler) GetUsers(w http.ResponseWriter, r *http.Request) {
|
||||
h.logger.Info("handling get users request",
|
||||
zap.String("method", r.Method),
|
||||
zap.String("path", r.URL.Path),
|
||||
zap.String("remote_addr", r.RemoteAddr),
|
||||
)
|
||||
|
||||
// Получаем пользователя из контекста для проверки аутентификации
|
||||
_, ok := middleware.GetUserFromContext(r.Context())
|
||||
if !ok {
|
||||
h.logger.Warn("get users failed - authentication required")
|
||||
utils.RespondWithError(w, http.StatusUnauthorized, "Authentication required")
|
||||
return
|
||||
}
|
||||
|
||||
// Получаем список пользователей из сервиса
|
||||
users, err := h.userService.GetAllUsers()
|
||||
if err != nil {
|
||||
h.logger.Error("failed to get users from service", zap.Error(err))
|
||||
utils.RespondWithError(w, http.StatusInternalServerError, "Failed to get users: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// Преобразуем в response формат
|
||||
var userResponses []UserResponse
|
||||
for _, user := range users {
|
||||
userResponses = append(userResponses, toUserResponse(&user))
|
||||
}
|
||||
|
||||
h.logger.Info("users list retrieved successfully",
|
||||
zap.Int("users_count", len(userResponses)),
|
||||
)
|
||||
|
||||
utils.RespondWithJSON(w, http.StatusOK, userResponses)
|
||||
}
|
||||
|
||||
func (h *UserHandler) GetProfile(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
h.logger.Info("handling get profile request",
|
||||
|
||||
Reference in New Issue
Block a user