package v2 import ( "encoding/json" "net/http" "recipe-manager/data" modelsV2 "recipe-manager/models/v2" "recipe-manager/services/logger" "strconv" "github.com/go-chi/chi/v5" ) type materialRouter struct { data *data.Data taoLogger *logger.TaoLogger } func NewMaterialRouter(data *data.Data, taoLogger *logger.TaoLogger) *materialRouter { return &materialRouter{ data: data, taoLogger: taoLogger, } } func (mr *materialRouter) Route(r chi.Router) { r.Route("/materials", func(r chi.Router) { r.Get("/dashboard", func(w http.ResponseWriter, r *http.Request) { w.Header().Add("Content-Type", "application/json") countryID := r.URL.Query().Get("country_id") filename := r.URL.Query().Get("filename") materials := mr.data.GetMaterialSetting(countryID, filename) result := make([]modelsV2.MaterialDashboard, 0, len(materials)) for _, material := range materials { dashboardMaterial := modelsV2.MaterialDashboard{ Lebel: material.MaterialName, Value: strconv.Itoa(int(material.ID)), } result = append(result, dashboardMaterial) } if err := json.NewEncoder(w).Encode(result); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }) }) }