package api import ( "Advertisement_Panel/db" "encoding/json" "io" "log" "net/http" ) func SaveMetadataHandler(w http.ResponseWriter, r *http.Request) { if r.Method != "POST" { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } body, err := io.ReadAll(r.Body) if err != nil { http.Error(w, "Failed to read request body", http.StatusBadRequest) return } defer r.Body.Close() var newMetadata []db.ImagesEntry log.Println(string(body)) err = json.Unmarshal(body, &newMetadata) if err != nil { log.Println("Error unmarshalling JSON:", err) http.Error(w, "Failed to parse JSON", http.StatusBadRequest) return } var currentMetadata []db.ImagesEntry currentMetadata = db.GetImageMetadata() for _, newEntry := range newMetadata { for _, currentEntry := range currentMetadata { if newEntry.ID == currentEntry.ID { if newEntry.SpiceLevel != currentEntry.SpiceLevel { _, err := db.DB.Exec("UPDATE images SET spice_level = $1 WHERE id = $2", newEntry.SpiceLevel, newEntry.ID) if err != nil { http.Error(w, "Failed to update database", http.StatusInternalServerError) return } } break } } } }