66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package routes
|
||
|
||
import (
|
||
"bssapp-backend/auth"
|
||
"bssapp-backend/db"
|
||
"bssapp-backend/models"
|
||
"bssapp-backend/queries"
|
||
"encoding/json"
|
||
"log"
|
||
"net/http"
|
||
)
|
||
|
||
func GetProductDetailHandler(w http.ResponseWriter, r *http.Request) {
|
||
|
||
claims, ok := auth.GetClaimsFromContext(r.Context())
|
||
if !ok || claims == nil {
|
||
http.Error(w, "unauthorized", http.StatusUnauthorized)
|
||
return
|
||
}
|
||
|
||
code := r.URL.Query().Get("code")
|
||
if code == "" {
|
||
http.Error(w, "Eksik parametre: code", http.StatusBadRequest)
|
||
return
|
||
}
|
||
|
||
row := db.MssqlDB.QueryRow(queries.GetProductDetail, code)
|
||
|
||
var p models.ProductDetail
|
||
err := row.Scan(
|
||
&p.ProductCode,
|
||
new(string), // BOS7
|
||
new(string), // ProductDescription
|
||
new(string), // ProductAtt42
|
||
&p.UrunIlkGrubu,
|
||
new(string), // ProductAtt01
|
||
&p.UrunAnaGrubu,
|
||
new(string), // ProductAtt02
|
||
&p.UrunAltGrubu,
|
||
new(string), // ProductAtt41
|
||
&p.UrunIcerik,
|
||
new(string), // ProductAtt10
|
||
new(string), // Marka
|
||
new(string), // ProductAtt11
|
||
&p.Drop,
|
||
new(string), // ProductAtt29
|
||
new(string), // Karisim
|
||
new(string), // ProductAtt45
|
||
&p.AskiliYan,
|
||
new(string), // ProductAtt44
|
||
&p.Kategori,
|
||
new(string), // ProductAtt38
|
||
&p.Fit1,
|
||
new(string), // ProductAtt39
|
||
&p.Fit2,
|
||
)
|
||
if err != nil {
|
||
log.Println("❌ Ürün detayları alınamadı:", err)
|
||
http.Error(w, "Veri okuma hatası: "+err.Error(), http.StatusInternalServerError)
|
||
return
|
||
}
|
||
|
||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||
_ = json.NewEncoder(w).Encode(p)
|
||
}
|