added store
This commit is contained in:
parent
ea6546ec17
commit
0570e47be9
6 changed files with 208 additions and 151 deletions
65
store.go
Normal file
65
store.go
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
type store struct {
|
||||
cakes []cake
|
||||
orders []order
|
||||
}
|
||||
|
||||
func NewStore() *store {
|
||||
var out store
|
||||
out.cakes = make([]cake, 0)
|
||||
out.orders = make([]order, 0)
|
||||
return &out
|
||||
}
|
||||
|
||||
func (s *store) getCakes() []cake {
|
||||
return s.cakes
|
||||
}
|
||||
|
||||
func (s *store) saveCake(newCake cake) int {
|
||||
if newCake.ID == -1 {
|
||||
newCake.ID = len(s.cakes)
|
||||
s.cakes = append(s.cakes, newCake)
|
||||
return newCake.ID
|
||||
}
|
||||
for i := range s.cakes {
|
||||
if s.cakes[i].ID == newCake.ID {
|
||||
s.cakes[i] = newCake
|
||||
break
|
||||
}
|
||||
}
|
||||
return newCake.ID
|
||||
}
|
||||
|
||||
func (s *store) getOrder(id int) (order, error) {
|
||||
for _, e := range s.orders {
|
||||
if e.ID == id {
|
||||
return e, nil
|
||||
}
|
||||
}
|
||||
return order{}, errors.New("order not found")
|
||||
}
|
||||
|
||||
func (s *store) getOrders() []order {
|
||||
return s.orders
|
||||
}
|
||||
|
||||
func (s *store) saveOrder(newOrder order) int {
|
||||
if newOrder.ID == -1 {
|
||||
newOrder.ID = len(s.orders)
|
||||
s.orders = append(s.orders, newOrder)
|
||||
return newOrder.ID
|
||||
}
|
||||
|
||||
for i := range s.orders {
|
||||
if s.orders[i].ID == newOrder.ID {
|
||||
s.orders[i] = newOrder
|
||||
break
|
||||
}
|
||||
}
|
||||
return newOrder.ID
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue