mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
0202-финиш перед десктопом
пересчет поправил редактирование с перепроведением галка автопроведения работает рекомендации починил
This commit is contained in:
@@ -4,29 +4,56 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"rmser/internal/domain/account"
|
||||
"rmser/internal/services/recommend"
|
||||
"rmser/pkg/logger"
|
||||
)
|
||||
|
||||
type RecommendationsHandler struct {
|
||||
service *recommend.Service
|
||||
service *recommend.Service
|
||||
accountRepo account.Repository
|
||||
}
|
||||
|
||||
func NewRecommendationsHandler(service *recommend.Service) *RecommendationsHandler {
|
||||
return &RecommendationsHandler{service: service}
|
||||
func NewRecommendationsHandler(service *recommend.Service, accountRepo account.Repository) *RecommendationsHandler {
|
||||
return &RecommendationsHandler{
|
||||
service: service,
|
||||
accountRepo: accountRepo,
|
||||
}
|
||||
}
|
||||
|
||||
// GetRecommendations godoc
|
||||
// @Summary Получить список рекомендаций
|
||||
// @Description Возвращает сгенерированные рекомендации (проблемные зоны учета)
|
||||
// @Description Возвращает сгенерированные рекомендации (проблемные зоны учета) для активного сервера
|
||||
// @Tags recommendations
|
||||
// @Produce json
|
||||
// @Success 200 {array} recommendations.Recommendation
|
||||
// @Failure 500 {object} map[string]string
|
||||
func (h *RecommendationsHandler) GetRecommendations(c *gin.Context) {
|
||||
recs, err := h.service.GetRecommendations()
|
||||
userID := c.MustGet("userID").(uuid.UUID)
|
||||
|
||||
// Получаем активный сервер пользователя
|
||||
server, err := h.accountRepo.GetActiveServer(userID)
|
||||
if err != nil {
|
||||
logger.Log.Error("Ошибка получения активного сервера", zap.Error(err))
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to get active server"})
|
||||
return
|
||||
}
|
||||
if server == nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "no active server"})
|
||||
return
|
||||
}
|
||||
|
||||
// Сначала обновляем рекомендации
|
||||
if err := h.service.RefreshRecommendations(server.ID); err != nil {
|
||||
logger.Log.Error("Ошибка обновления рекомендаций", zap.Error(err))
|
||||
// Не прерываем выполнение, продолжаем с текущими данными
|
||||
}
|
||||
|
||||
// Затем получаем рекомендации
|
||||
recs, err := h.service.GetRecommendations(server.ID)
|
||||
if err != nil {
|
||||
logger.Log.Error("Ошибка получения рекомендаций", zap.Error(err))
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
|
||||
Reference in New Issue
Block a user