You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

709 lines
24 KiB

package main
import (
"database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
)
var (
dbConnection = "wdmdbuser:wdmdbpass@tcp(localhost:3306)/wdmdb"
dbType = "mysql"
)
// Tool Funktionen
func CreateTyp(typ Typ) (resTyp Typ, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt")
log.Println("Name = ", typ.Bezeichnung)
defer conn.Close()
res, err := conn.Exec("INSERT INTO typ VALUES(?,?)", typ.Id, typ.Bezeichnung)
if err != nil {
log.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
typ.Id = uint(lastId)
resTyp = typ
return resTyp, err
}
func DeleteTyp(typId uint) (result, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (DELETE)")
defer conn.Close()
_, err = conn.Exec("DELETE FROM typ WHERE id = ?", typId)
if err != nil {
log.Fatal("Error while executing DELETE statement", err)
}
return result, err
}
func ShowTyp() (typArray []Typ, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM typ")
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var typ Typ
for results.Next() {
err = results.Scan(&typ.Id, &typ.Bezeichnung)
if err != nil {
log.Fatal("Error: ", err)
}
typArray = append(typArray, typ)
}
return typArray, err
}
func GetTyp(id uint) (typ Typ, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM typ WHERE id=?", id)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
for results.Next() {
err = results.Scan(&typ.Id, &typ.Bezeichnung)
if err != nil {
log.Fatal("Error: ", err)
}
}
return typ, err
}
func UpdateTyp(typ Typ) (resTyp Typ, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (UPDATE)")
log.Println("Name = ", typ.Bezeichnung)
defer conn.Close()
_, err = conn.Exec("UPDATE typ SET bezeichnung=? WHERE id=?", typ.Bezeichnung, typ.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
resTyp = typ
return resTyp, err
}
// Photo Funktionen
func CreatePhoto(pho Photos) (resPhoto Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (Photo CREATE)")
log.Println("Name = ", pho.Pfad)
defer conn.Close()
res, err := conn.Exec("INSERT INTO photos VALUES(?,?,?,?)", pho.Id, pho.Pfad, pho.ItembId, pho.ItemextId)
if err != nil {
log.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
pho.Id = uint64(lastId)
resPhoto = pho
return resPhoto, err
}
func DeletePhoto(phoId uint64) (result, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Photo DELETE)")
defer conn.Close()
_, err = conn.Exec("DELETE FROM photos WHERE id = ?", phoId)
if err != nil {
log.Fatal("Error while executing DELETE statement", err)
}
return result, err
}
func ShowPhoto() (phoArray []Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Photo SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM photos")
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var pho Photos
for results.Next() {
err = results.Scan(&pho.Id, &pho.Pfad, &pho.ItembId, &pho.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
phoArray = append(phoArray, pho)
}
return phoArray, err
}
func GetPhotoForItb(itbid uint64) (phoArray []Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Photo Itb SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM photos where itembid=?", itbid)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var pho Photos
for results.Next() {
err = results.Scan(&pho.Id, &pho.Pfad, &pho.ItembId, &pho.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
phoArray = append(phoArray, pho)
}
return phoArray, err
}
func GetPhotoForIte(itbid uint64) (phoArray []Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Photo Itb SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM photos where itemextid=?", itbid)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var pho Photos
for results.Next() {
err = results.Scan(&pho.Id, &pho.Pfad, &pho.ItembId, &pho.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
phoArray = append(phoArray, pho)
}
return phoArray, err
}
func GetPhoto(id uint64) (pho Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Photo SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM photos WHERE id=?", id)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
for results.Next() {
err = results.Scan(&pho.Id, &pho.Pfad, &pho.ItembId, &pho.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
}
return pho, err
}
func UpdatePhoto(pho Photos) (resPho Photos, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (Photo UPDATE)")
log.Println("Name = ", pho.Pfad)
defer conn.Close()
_, err = conn.Exec("UPDATE photos SET pfad=?, itembid=?, itemextid=? WHERE id=?", pho.Pfad, pho.ItembId, pho.ItemextId, pho.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
resPho = pho
return resPho, err
}
// Measure Funktionen
func CreateMeasure(mea Measure) (resMea Measure, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (Measure INSERT)")
log.Println("Name = ", mea.Kurz)
defer conn.Close()
res, err := conn.Exec("INSERT INTO measure VALUES(?,?,?,?,?,?,?,?,?,?)", mea.Id, mea.Brust, mea.LaengeT, mea.Schulterbreite, mea.TaillenumfangT, mea.Hueftumfang, mea.Innennaht, mea.LaengeB, mea.TaillenumfangB, mea.Kurz)
if err != nil {
log.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
mea.Id = uint64(lastId)
resMea = mea
return resMea, err
}
func DeleteMeasure(meaId uint64) (result, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Measure DELETE)")
defer conn.Close()
_, err = conn.Exec("DELETE FROM measure WHERE id = ?", meaId)
if err != nil {
log.Fatal("Error while executing DELETE statement", err)
}
return result, err
}
func ShowMeasure() (meaArray []Measure, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Measure SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM measure")
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var mea Measure
for results.Next() {
err = results.Scan(&mea.Id, &mea.Brust, &mea.LaengeT, &mea.Schulterbreite, &mea.TaillenumfangT, &mea.Hueftumfang, &mea.Innennaht, &mea.LaengeB, &mea.TaillenumfangB, &mea.Kurz)
if err != nil {
log.Fatal("Error: ", err)
}
meaArray = append(meaArray, mea)
}
return meaArray, err
}
func GetMeasure(id uint64) (mea Measure, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (Measure SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT * FROM measure WHERE id=?", id)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
for results.Next() {
err = results.Scan(&mea.Id, &mea.Brust, &mea.LaengeT, &mea.Schulterbreite, &mea.TaillenumfangT, &mea.Hueftumfang, &mea.Innennaht, &mea.LaengeB, &mea.TaillenumfangB, &mea.Kurz)
if err != nil {
log.Fatal("Error: ", err)
}
}
return mea, err
}
func UpdateMeasure(mea Measure) (resMea Measure, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (Measure UPDATE)")
log.Println("Name = ", mea.Kurz)
defer conn.Close()
_, err = conn.Exec("UPDATE measure SET brust=?, laenget=?, schulterbreite=?, taillenumfangt=?, hueftumfang=?, innennaht=?, laengeb=?, taillenumfangb=?, kurz=? WHERE id=?",
mea.Brust, mea.LaengeT, mea.Schulterbreite, mea.TaillenumfangT, mea.Hueftumfang, mea.Innennaht, mea.LaengeB, mea.TaillenumfangB, mea.Kurz, mea.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
resMea = mea
return resMea, err
}
// ItemB Funktionen
func CreateItemB(itemB Itemb) (resItemb Itemb, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (ItemB Create)")
log.Println("Name = ", itemB.Bezeichnung)
defer conn.Close()
res, err := conn.Exec("INSERT INTO itemb VALUES(?,?,?,?,?,?,?,?,?)", 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.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
itemB.Id = uint64(lastId)
resItemb = itemB
return resItemb, err
}
func DeleteItemB(itemBId uint64) (result, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (ItemB DELETE)")
defer conn.Close()
_, err = conn.Exec("DELETE FROM itemb WHERE id = ?", itemBId)
if err != nil {
log.Fatal("Error while executing DELETE statement", err)
}
return result, err
}
func ShowItemB() (itemBArray []Itemb, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (ItemB SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT a.*, b.pfad FROM itemb a, photos b WHERE a.frontviewid=b.id")
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
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, &itemB.Frontview.Id, &itemB.Frontview.Pfad)
if err != nil {
log.Fatal("Error: ", err)
}
itemBArray = append(itemBArray, itemB)
}
return itemBArray, err
}
func GetItemB(id uint64) (itemB Itemb, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
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, 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)
}
for results.Next() {
/* err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Material,
&itemB.Abmessungen.Id, &itemB.Abmessungen.Brust, &itemB.Abmessungen.LaengeT, &itemB.Abmessungen.Schulterbreite, &itemB.Abmessungen.TaillenumfangT, &itemB.Abmessungen.Hueftumfang,
&itemB.Abmessungen.LaengeB, &itemB.Abmessungen.TaillenumfangB, &itemB.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung)
*/
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, &itemB.Frontview.Id, &itemB.Frontview.Pfad, &dbItemb.Frontview.ItembId, &dbItemb.Frontview.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
if dbItemb.Bezeichnung.Valid {
itemB.Bezeichnung = dbItemb.Bezeichnung.String
} else {
itemB.Bezeichnung = ""
}
if dbItemb.Kurzbeschreibung.Valid {
itemB.Kurzbeschreibung = dbItemb.Kurzbeschreibung.String
} else {
itemB.Kurzbeschreibung = ""
}
if dbItemb.Groesse.Valid {
itemB.Groesse = dbItemb.Groesse.String
} else {
itemB.Groesse = ""
}
if dbItemb.Farbe.Valid {
itemB.Farbe = dbItemb.Farbe.String
} else {
itemB.Farbe = ""
}
if dbItemb.Material.Valid {
itemB.Material = dbItemb.Material.String
} else {
itemB.Material = ""
}
if dbItemb.Abmessungen.Brust.Valid {
itemB.Abmessungen.Brust = dbItemb.Abmessungen.Brust.Float64
} else {
itemB.Abmessungen.Brust = 0
}
if dbItemb.Abmessungen.LaengeT.Valid {
itemB.Abmessungen.LaengeT = dbItemb.Abmessungen.LaengeT.Float64
} else {
itemB.Abmessungen.LaengeT = 0
}
if dbItemb.Abmessungen.Schulterbreite.Valid {
itemB.Abmessungen.Schulterbreite = dbItemb.Abmessungen.Schulterbreite.Float64
} else {
itemB.Abmessungen.Schulterbreite = 0
}
if dbItemb.Abmessungen.TaillenumfangT.Valid {
itemB.Abmessungen.TaillenumfangT = dbItemb.Abmessungen.TaillenumfangT.Float64
} else {
itemB.Abmessungen.TaillenumfangT = 0
}
if dbItemb.Abmessungen.Hueftumfang.Valid {
itemB.Abmessungen.Hueftumfang = dbItemb.Abmessungen.Hueftumfang.Float64
} else {
itemB.Abmessungen.Hueftumfang = 0
}
if dbItemb.Abmessungen.LaengeB.Valid {
itemB.Abmessungen.LaengeB = dbItemb.Abmessungen.LaengeB.Float64
} else {
itemB.Abmessungen.LaengeB = 0
}
if dbItemb.Abmessungen.TaillenumfangB.Valid {
itemB.Abmessungen.TaillenumfangB = dbItemb.Abmessungen.TaillenumfangB.Float64
} else {
itemB.Abmessungen.TaillenumfangB = 0
}
if dbItemb.Abmessungen.Kurz.Valid {
itemB.Abmessungen.Kurz = dbItemb.Abmessungen.Kurz.String
} 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
}
func UpdateItemB(itemB Itemb) (resItemb Itemb, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (ItemB UPDATE)")
log.Println("Name = ", itemB.Bezeichnung)
defer conn.Close()
_, err = conn.Exec("UPDATE itemb SET bezeichnung=?, kurzbeschreibung=?, groesse=?, farbe=?, typid=?, material=?, abmessungenid=?, frontviewid=? WHERE id=?", itemB.Bezeichnung, itemB.Kurzbeschreibung, itemB.Groesse, itemB.Farbe, itemB.Type.Id, itemB.Material, itemB.Abmessungen.Id, itemB.Frontview.Id, itemB.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
resItemb = itemB
return resItemb, err
}
// ItemExt Funktionen
func CreateItemExt(itemExt ItemExt) (resItemExt ItemExt, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (ItemExt Create)")
defer conn.Close()
res, err := conn.Exec("INSERT INTO itemext VALUES(?,?,?,?,?,?,?,?,?)", itemExt.Id, itemExt.Zuhause, itemExt.Draussen, itemExt.Genehmigt, itemExt.Bemerkung, itemExt.Bewertung, itemExt.Favorit, itemExt.ItemB.Id, itemExt.Frontview.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
itemExt.Id = uint64(lastId)
resItemExt = itemExt
return resItemExt, err
}
func DeleteItemExt(itemExtId uint64) (result, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (ItemExt DELETE)")
defer conn.Close()
_, err = conn.Exec("DELETE FROM itemext WHERE id = ?", itemExtId)
if err != nil {
log.Fatal("Error while executing DELETE statement", err)
}
return result, err
}
func ShowItemExt() (itemExtArray []ItemExt, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (ItemExt SHOW)")
defer conn.Close()
results, err := conn.Query("SELECT a.*, b.pfad FROM itemext a, photos b WHERE a.frontviewid=b.id")
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
var itemExt ItemExt
for results.Next() {
err = results.Scan(&itemExt.Id, &itemExt.Zuhause, &itemExt.Draussen, &itemExt.Genehmigt, &itemExt.Bemerkung, &itemExt.Bewertung, &itemExt.Favorit, &itemExt.ItemB.Id, &itemExt.Frontview.Id, &itemExt.Frontview.Pfad)
if err != nil {
log.Fatal("Error: ", err)
}
itemExtArray = append(itemExtArray, itemExt)
}
return itemExtArray, err
}
func GetItemExt(id uint64) (itemExt ItemExt, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("DB Verbindung hergestellt (ItemExt SHOW)")
defer conn.Close()
var dbItemExt DbIe
results, err := conn.Query("SELECT ie.id, ie.zuhause, ie.draussen, ie.genehmigt, ie.bemerkung, ie.bewertung, ie.favorit, 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 itemext ie, itemb a, measure b, typ c, photos d WHERE ie.id=? AND ie.itembid=a.id AND b.id=a.abmessungenid AND a.typid=c.id AND ie.frontviewid=d.id", id)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
for results.Next() {
/* err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Material,
&itemB.Abmessungen.Id, &itemB.Abmessungen.Brust, &itemB.Abmessungen.LaengeT, &itemB.Abmessungen.Schulterbreite, &itemB.Abmessungen.TaillenumfangT, &itemB.Abmessungen.Hueftumfang,
&itemB.Abmessungen.LaengeB, &itemB.Abmessungen.TaillenumfangB, &itemB.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung)
*/
err = results.Scan(&itemExt.Id, &dbItemExt.Zuhause, &dbItemExt.Draussen, &dbItemExt.Genehmigt, &dbItemExt.Bemerkung, &dbItemExt.Bewertung, &dbItemExt.Favorit,
&itemExt.ItemB.Id, &dbItemExt.ItemB.Bezeichnung, &dbItemExt.ItemB.Kurzbeschreibung, &dbItemExt.ItemB.Groesse, &dbItemExt.ItemB.Farbe, &dbItemExt.ItemB.Material,
&itemExt.ItemB.Abmessungen.Id, &dbItemExt.ItemB.Abmessungen.Brust, &dbItemExt.ItemB.Abmessungen.LaengeT, &dbItemExt.ItemB.Abmessungen.Schulterbreite, &dbItemExt.ItemB.Abmessungen.TaillenumfangT, &dbItemExt.ItemB.Abmessungen.Hueftumfang,
&dbItemExt.ItemB.Abmessungen.LaengeB, &dbItemExt.ItemB.Abmessungen.TaillenumfangB, &dbItemExt.ItemB.Abmessungen.Kurz, &itemExt.ItemB.Type.Id, &itemExt.ItemB.Type.Bezeichnung, &itemExt.Frontview.Id, &itemExt.Frontview.Pfad, &dbItemExt.Frontview.ItembId, &dbItemExt.Frontview.ItemextId)
if err != nil {
log.Fatal("Error: ", err)
}
if dbItemExt.Zuhause.Valid {
itemExt.Zuhause = dbItemExt.Zuhause.Bool
} else {
itemExt.Zuhause = false
}
if dbItemExt.Draussen.Valid {
itemExt.Draussen = dbItemExt.Draussen.Bool
} else {
itemExt.Draussen = false
}
if dbItemExt.Genehmigt.Valid {
itemExt.Genehmigt = dbItemExt.Genehmigt.Bool
} else {
itemExt.Genehmigt = false
}
if dbItemExt.Bemerkung.Valid {
itemExt.Bemerkung = dbItemExt.Bemerkung.String
} else {
itemExt.Bemerkung = ""
}
if dbItemExt.Bewertung.Valid {
itemExt.Bewertung = int(dbItemExt.Bewertung.Int64)
} else {
itemExt.Bewertung = 0
}
if dbItemExt.Favorit.Valid {
itemExt.Favorit = dbItemExt.Favorit.Bool
} else {
itemExt.Favorit = false
}
if dbItemExt.ItemB.Bezeichnung.Valid {
itemExt.ItemB.Bezeichnung = dbItemExt.ItemB.Bezeichnung.String
} else {
itemExt.ItemB.Bezeichnung = ""
}
if dbItemExt.ItemB.Kurzbeschreibung.Valid {
itemExt.ItemB.Kurzbeschreibung = dbItemExt.ItemB.Kurzbeschreibung.String
} else {
itemExt.ItemB.Kurzbeschreibung = ""
}
if dbItemExt.ItemB.Groesse.Valid {
itemExt.ItemB.Groesse = dbItemExt.ItemB.Groesse.String
} else {
itemExt.ItemB.Groesse = ""
}
if dbItemExt.ItemB.Farbe.Valid {
itemExt.ItemB.Farbe = dbItemExt.ItemB.Farbe.String
} else {
itemExt.ItemB.Farbe = ""
}
if dbItemExt.ItemB.Material.Valid {
itemExt.ItemB.Material = dbItemExt.ItemB.Material.String
} else {
itemExt.ItemB.Material = ""
}
if dbItemExt.ItemB.Abmessungen.Brust.Valid {
itemExt.ItemB.Abmessungen.Brust = dbItemExt.ItemB.Abmessungen.Brust.Float64
} else {
itemExt.ItemB.Abmessungen.Brust = 0
}
if dbItemExt.ItemB.Abmessungen.LaengeT.Valid {
itemExt.ItemB.Abmessungen.LaengeT = dbItemExt.ItemB.Abmessungen.LaengeT.Float64
} else {
itemExt.ItemB.Abmessungen.LaengeT = 0
}
if dbItemExt.ItemB.Abmessungen.Schulterbreite.Valid {
itemExt.ItemB.Abmessungen.Schulterbreite = dbItemExt.ItemB.Abmessungen.Schulterbreite.Float64
} else {
itemExt.ItemB.Abmessungen.Schulterbreite = 0
}
if dbItemExt.ItemB.Abmessungen.TaillenumfangT.Valid {
itemExt.ItemB.Abmessungen.TaillenumfangT = dbItemExt.ItemB.Abmessungen.TaillenumfangT.Float64
} else {
itemExt.ItemB.Abmessungen.TaillenumfangT = 0
}
if dbItemExt.ItemB.Abmessungen.Hueftumfang.Valid {
itemExt.ItemB.Abmessungen.Hueftumfang = dbItemExt.ItemB.Abmessungen.Hueftumfang.Float64
} else {
itemExt.ItemB.Abmessungen.Hueftumfang = 0
}
if dbItemExt.ItemB.Abmessungen.LaengeB.Valid {
itemExt.ItemB.Abmessungen.LaengeB = dbItemExt.ItemB.Abmessungen.LaengeB.Float64
} else {
itemExt.ItemB.Abmessungen.LaengeB = 0
}
if dbItemExt.ItemB.Abmessungen.TaillenumfangB.Valid {
itemExt.ItemB.Abmessungen.TaillenumfangB = dbItemExt.ItemB.Abmessungen.TaillenumfangB.Float64
} else {
itemExt.ItemB.Abmessungen.TaillenumfangB = 0
}
if dbItemExt.ItemB.Abmessungen.Kurz.Valid {
itemExt.ItemB.Abmessungen.Kurz = dbItemExt.ItemB.Abmessungen.Kurz.String
} else {
itemExt.ItemB.Abmessungen.Kurz = ""
}
if dbItemExt.Frontview.ItembId.Valid {
itemExt.Frontview.ItembId = uint64(dbItemExt.Frontview.ItembId.Int64)
} else {
itemExt.Frontview.ItembId = 0
}
if dbItemExt.Frontview.ItemextId.Valid {
itemExt.Frontview.ItemextId = uint64(dbItemExt.Frontview.ItemextId.Int64)
} else {
itemExt.Frontview.ItemextId = 0
}
}
return itemExt, err
}
func UpdateItemExt(itemExt ItemExt) (resItemExt ItemExt, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt (ItemExt UPDATE)")
log.Println("ID = ", itemExt.Id)
defer conn.Close()
_, err = conn.Exec("UPDATE itemext SET zuhause=?, draussen=?, genehmigt=?, bemerkung=?, bewertung=?, favorit=?, itembid=?, frontviewid=? WHERE id=?", itemExt.Zuhause, itemExt.Draussen, itemExt.Genehmigt, itemExt.Bemerkung, itemExt.Bewertung, itemExt.Favorit, itemExt.ItemB.Id, itemExt.Frontview.Id, itemExt.Id)
if err != nil {
log.Println("Error while executing insert statement", err)
}
resItemExt = itemExt
return resItemExt, err
}