diff --git a/data.go b/data.go index 1f289dc..bddd1da 100644 --- a/data.go +++ b/data.go @@ -12,6 +12,7 @@ type Itemb struct { Type Typ `json:"type"` Material string `json:"material"` Abmessungen Measure `json:"abmessungen"` + Frontview Photos `json:"frontview"` } // struct für die Datenbank-Abfrage, analog zu Itemb @@ -22,6 +23,7 @@ type DbIb struct { Farbe sql.NullString Material sql.NullString Abmessungen DbMea + Frontview DbPho } // struct für die Fotos, die im Filesystem abgelegt werden sollen @@ -32,6 +34,13 @@ type Photos struct { ItemextId uint64 `json:"itemextid"` } +// struct für die Datenbank-Abfrage von Photos +type DbPho struct { + Pfad sql.NullString + ItembId sql.NullInt64 + ItemextId sql.NullInt64 +} + // struct für die Typen von Kleidung type Typ struct { Id uint `json:"id"` @@ -76,4 +85,5 @@ type ItemExt struct { Bewertung int `json:"bewertung"` Favorit bool `json:"favorit"` ItemBId uint64 `json:"itembid"` + Frontview Photos `json:"frontview"` } diff --git a/wdmdb.go b/wdmdb.go index 1bfc56a..8c96d6c 100644 --- a/wdmdb.go +++ b/wdmdb.go @@ -354,7 +354,7 @@ func ShowItemB() (itemBArray []Itemb, err error) { } var itemB Itemb for results.Next() { - err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Type.Id, &itemB.Material, &itemB.Abmessungen.Id) + err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Type.Id, &itemB.Material, &itemB.Abmessungen.Id, &itemB.Frontview.Id) if err != nil { log.Fatal("Error: ", err) } @@ -371,7 +371,7 @@ func GetItemB(id uint64) (itemB Itemb, err error) { log.Println("DB Verbindung hergestellt (ItemB SHOW)") defer conn.Close() var dbItemb DbIb - results, err := conn.Query("SELECT a.id, a.bezeichnung, a.kurzbeschreibung, a.groesse, a.farbe, a.material, b.id, b.brust, b.laenget, b.schulterbreite, b.taillenumfangt, b.hueftumfang, b.laengeb, b.taillenumfangb, b.kurz, c.id, c.bezeichnung FROM itemb a, measure b, typ c WHERE a.id=? AND b.id=a.abmessungenid AND a.typid=c.id", id) + results, err := conn.Query("SELECT a.id, a.bezeichnung, a.kurzbeschreibung, a.groesse, a.farbe, a.material, b.id, b.brust, b.laenget, b.schulterbreite, b.taillenumfangt, b.hueftumfang, b.laengeb, b.taillenumfangb, b.kurz, c.id, c.bezeichnung, d.id, d.pfad, d.itembid, d.itemextid FROM itemb a, measure b, typ c photos d WHERE a.id=? AND b.id=a.abmessungenid AND a.typid=c.id AND a.frontviewid=d.id", id) if err != nil { log.Fatal("Error while executing SELECt statement", err) } @@ -382,7 +382,7 @@ func GetItemB(id uint64) (itemB Itemb, err error) { */ err = results.Scan(&itemB.Id, &dbItemb.Bezeichnung, &dbItemb.Kurzbeschreibung, &dbItemb.Groesse, &dbItemb.Farbe, &dbItemb.Material, &itemB.Abmessungen.Id, &dbItemb.Abmessungen.Brust, &dbItemb.Abmessungen.LaengeT, &dbItemb.Abmessungen.Schulterbreite, &dbItemb.Abmessungen.TaillenumfangT, &dbItemb.Abmessungen.Hueftumfang, - &dbItemb.Abmessungen.LaengeB, &dbItemb.Abmessungen.TaillenumfangB, &dbItemb.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung) + &dbItemb.Abmessungen.LaengeB, &dbItemb.Abmessungen.TaillenumfangB, &dbItemb.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung, &itemB.Frontview.Id, &itemB.Frontview.Pfad, &dbItemb.Frontview.ItembId, &dbItemb.Frontview.ItemextId) if err != nil { log.Fatal("Error: ", err) } @@ -451,6 +451,17 @@ func GetItemB(id uint64) (itemB Itemb, err error) { } else { itemB.Abmessungen.Kurz = "" } + if dbItemb.Frontview.ItembId.Valid { + itemB.Frontview.ItembId = uint64(dbItemb.Frontview.ItembId.Int64) + } else { + itemB.Frontview.ItembId = 0 + } + if dbItemb.Frontview.ItemextId.Valid { + itemB.Frontview.ItemextId = uint64(dbItemb.Frontview.ItemextId.Int64) + } else { + itemB.Frontview.ItemextId = 0 + } + } return itemB, err }