34 lines
617 B
Go
34 lines
617 B
Go
package models
|
|
|
|
// AddOrUpdateItem adds or updates a item from a item struct
|
|
func AddOrUpdateItem(item Item) (newItem Item, err error) {
|
|
// save the quantity for later use
|
|
qty := item.Quantity
|
|
|
|
if item.ID == 0 {
|
|
if item.Title != "" { // Only insert it if the title is not empty
|
|
_, err = x.Insert(&item)
|
|
|
|
if err != nil {
|
|
return Item{}, err
|
|
}
|
|
}
|
|
} else {
|
|
_, err = x.ID(item.ID).Update(&item)
|
|
|
|
if err != nil {
|
|
return Item{}, err
|
|
}
|
|
}
|
|
|
|
// Set the Quantity
|
|
err = item.setQuantity(qty)
|
|
if err != nil {
|
|
return Item{}, err
|
|
}
|
|
|
|
newItem, _, err = GetItemByID(item.ID)
|
|
|
|
return newItem, err
|
|
}
|