Files
Advertisement_Panel/api/MetadataSaving.go
2025-08-28 13:26:16 +02:00

53 lines
1.2 KiB
Go

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
}
}
}
}