add cages and hamsters dao
This commit is contained in:
@@ -1 +1,66 @@
|
||||
package fake
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"hamster-tycoon/storage/dao"
|
||||
"hamster-tycoon/storage/model"
|
||||
"hamster-tycoon/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
cacheKeyCages = "cages"
|
||||
)
|
||||
|
||||
func (db *DatabaseFake) saveCages(cages []*model.Cage) {
|
||||
data := make([]interface{}, 0)
|
||||
for _, v := range cages {
|
||||
data = append(data, v)
|
||||
}
|
||||
db.save(cacheKeyCages, data)
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) loadCages() []*model.Cage {
|
||||
cages := make([]*model.Cage, 0)
|
||||
b, err := db.Cache.Get(cacheKeyCages)
|
||||
if err != nil {
|
||||
return cages
|
||||
}
|
||||
err = json.Unmarshal(b, &cages)
|
||||
if err != nil {
|
||||
utils.GetLogger().WithError(err).Error("Error while unmarshal fake users")
|
||||
}
|
||||
return cages
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) GetAllCages() ([]*model.Cage, error) {
|
||||
return db.loadCages(), nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) GetCageById(cageId string) (*model.Cage, error) {
|
||||
cages := db.loadCages()
|
||||
for _, g := range cages {
|
||||
if g.ID == cageId {
|
||||
return g, nil
|
||||
}
|
||||
}
|
||||
return nil, dao.NewDAOError(dao.ErrTypeNotFound, errors.New("cage not found"))
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) CreateCage(cage *model.Cage) error {
|
||||
cage.ID = uuid.NewV4().String()
|
||||
|
||||
cages := db.loadCages()
|
||||
cages = append(cages, cage)
|
||||
db.saveCages(cages)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) DeleteCage(string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) UpdateCage(*model.Cage) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1 +1,66 @@
|
||||
package fake
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"hamster-tycoon/storage/dao"
|
||||
"hamster-tycoon/storage/model"
|
||||
"hamster-tycoon/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
cacheKeyHamsters = "hamsters"
|
||||
)
|
||||
|
||||
func (db *DatabaseFake) saveHamsters(hamsters []*model.Hamster) {
|
||||
data := make([]interface{}, 0)
|
||||
for _, v := range hamsters {
|
||||
data = append(data, v)
|
||||
}
|
||||
db.save(cacheKeyHamsters, data)
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) loadHamsters() []*model.Hamster {
|
||||
hamsters := make([]*model.Hamster, 0)
|
||||
b, err := db.Cache.Get(cacheKeyHamsters)
|
||||
if err != nil {
|
||||
return hamsters
|
||||
}
|
||||
err = json.Unmarshal(b, &hamsters)
|
||||
if err != nil {
|
||||
utils.GetLogger().WithError(err).Error("Error while unmarshal fake users")
|
||||
}
|
||||
return hamsters
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) GetAllHamsters() ([]*model.Hamster, error) {
|
||||
return db.loadHamsters(), nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) GetHamsterById(hamsterId string) (*model.Hamster, error) {
|
||||
hamsters := db.loadHamsters()
|
||||
for _, g := range hamsters {
|
||||
if g.ID == hamsterId {
|
||||
return g, nil
|
||||
}
|
||||
}
|
||||
return nil, dao.NewDAOError(dao.ErrTypeNotFound, errors.New("hamster not found"))
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) CreateHamster(hamster *model.Hamster) error {
|
||||
hamster.ID = uuid.NewV4().String()
|
||||
|
||||
hamsters := db.loadHamsters()
|
||||
hamsters = append(hamsters, hamster)
|
||||
db.saveHamsters(hamsters)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) DeleteHamster(string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DatabaseFake) UpdateHamster(*model.Hamster) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user