mongodb/adapter: implement Insert/Get for DiceRolls
This commit is contained in:
parent
07d797e1df
commit
298022e4e9
1 changed files with 60 additions and 19 deletions
|
@ -12,6 +12,7 @@ import (
|
|||
const errNoCollection string = "collection not found: felt.%s"
|
||||
const errNoDocument string = "document with name/id '%s' doesn't exist in collection: %s"
|
||||
const errNotAString string = "document property is not a string: %s<key=%s>.%s"
|
||||
const errNotAnArray string = "doccument property is not an array: %s<key=%s>.%s"
|
||||
|
||||
type DbAdapter interface {
|
||||
Init(mongoUri string) error
|
||||
|
@ -100,29 +101,69 @@ func (self *DbEngine) CreateTable(table models.TableKey) error {
|
|||
}
|
||||
|
||||
func (self *DbEngine) DestroyTable(table models.TableKey) error {
|
||||
tables := self.db.Collection("tables")
|
||||
if tables != nil {
|
||||
_, err := tables.DeleteOne(self.mkCtx(10), bson.D{
|
||||
{"name", table.Name},
|
||||
{"passcode", table.Passcode},
|
||||
})
|
||||
return err
|
||||
}
|
||||
return errors.New(fmt.Sprintf(errNoCollection, "tables"))
|
||||
tables := self.db.Collection("tables")
|
||||
if tables != nil {
|
||||
_, err := tables.DeleteOne(self.mkCtx(10), bson.D{
|
||||
{"name", table.Name},
|
||||
{"passcode", table.Passcode},
|
||||
})
|
||||
return err
|
||||
}
|
||||
return errors.New(fmt.Sprintf(errNoCollection, "tables"))
|
||||
}
|
||||
|
||||
func (self *DbEngine) InsertDiceRoll(table models.TableKey, diceRoll models.DiceRoll) error {
|
||||
return errors.New(fmt.Sprintf(errNoCollections, "tables"))
|
||||
tables := self.db.Collection("tables")
|
||||
if tables != nil {
|
||||
var result bson.D
|
||||
err := tables.FindOneAndUpdate(
|
||||
self.mkCtx(10),
|
||||
bson.D{
|
||||
{"name", table.Name},
|
||||
{"passcode", table.Passcode},
|
||||
},
|
||||
bson.D{
|
||||
{"$push", bson.D{
|
||||
"diceRolls", bson.D{
|
||||
{"$each", []models.DiceRoll{diceRoll}},
|
||||
{"$slice", 1000},
|
||||
},
|
||||
}},
|
||||
},
|
||||
).Decode(&result)
|
||||
return err
|
||||
}
|
||||
return errors.New(fmt.Sprintf(errNoCollection, "tables"))
|
||||
}
|
||||
|
||||
func (self *DbEngine) GetDiceRolls(table models.TableKey) ([]models.DiceRoll, error) {
|
||||
return []models.DiceRoll{}, nil
|
||||
tables := self.db.Colletion("tables")
|
||||
if tables != nil {
|
||||
fromDb := tables.findOne(
|
||||
self.mkCtx(10),
|
||||
bson.D{
|
||||
{"name", table.Name},
|
||||
{"passcode", table.Passcode},
|
||||
})
|
||||
if fromDb != nil {
|
||||
rolls, ok := fromDb.Lookup("diceRolls").ArrayOK()
|
||||
if ok {
|
||||
return rolls, nil
|
||||
} else {
|
||||
return "", errors.New(fmt.Sprintf(errNoArray, "tables", table.Name, "diceRolls"))
|
||||
}
|
||||
} else {
|
||||
return "", errors.New(fmt.Sprintf(errNoDocument, table.Name, "tables"))
|
||||
}
|
||||
}
|
||||
return "", errors.New(fmt.Sprintf(errNoCollection, "tables"))
|
||||
}
|
||||
|
||||
func (self *DbEngine) SetMapImageUrl(table models.TableKey, url string) error {
|
||||
tables := self.db.Collection("tables")
|
||||
if tables != nil {
|
||||
_, err := tables.UpdateOne(
|
||||
var result bson.D
|
||||
err := tables.FindOneAndUpdate(
|
||||
self.mkCtx(10),
|
||||
bson.D{
|
||||
{"name", table.Name},
|
||||
|
@ -131,7 +172,7 @@ func (self *DbEngine) SetMapImageUrl(table models.TableKey, url string) error {
|
|||
bson.D{
|
||||
{"mapImageUrl", url},
|
||||
},
|
||||
)
|
||||
).Decode(&result)
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -164,16 +205,16 @@ func (self *DbEngine) GetMapImageUrl(table models.TableKey) (string, error) {
|
|||
}
|
||||
|
||||
func (self *DbEngine) AddToken(table models.TableKey, token models.Token) error {
|
||||
return nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *DbEngine) RemoveToken(table models.TableKey, tokenId string) error {
|
||||
return nil
|
||||
func (self *DbEngine) RemoveToken(table models.TableKey, tokenId string) error {
|
||||
return nil
|
||||
}
|
||||
func (self *DbEngine) ModifyToken(table models.TableKey, token models.Token) error {
|
||||
return nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *DbEngine) GetTokens(table models.TableKey) ([]models.Token, error) {
|
||||
return []models.Token{}, nil
|
||||
}
|
||||
return []models.Token{}, nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue