2017-04-21 18:17:18 +00:00
|
|
|
package main
|
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
import "errors"
|
2017-04-21 18:17:18 +00:00
|
|
|
|
|
|
|
type Game struct {
|
2017-06-15 17:35:53 +00:00
|
|
|
Name string
|
|
|
|
TeamId string
|
2017-07-19 15:16:18 +00:00
|
|
|
Link string
|
2017-06-15 17:35:53 +00:00
|
|
|
Description string
|
|
|
|
Screenshots []Screenshot
|
|
|
|
}
|
|
|
|
|
|
|
|
type Screenshot struct {
|
2017-07-14 12:28:09 +00:00
|
|
|
UUID string
|
2017-06-15 17:35:53 +00:00
|
|
|
Description string
|
|
|
|
Image string
|
2017-07-14 12:28:09 +00:00
|
|
|
Thumbnail string
|
|
|
|
Filetype string
|
2017-04-21 18:17:18 +00:00
|
|
|
}
|
2017-06-08 20:43:11 +00:00
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
// Create a new game object, must have a valid team id
|
|
|
|
func newGame(tmId string) *Game {
|
2017-06-15 17:35:53 +00:00
|
|
|
var err error
|
2017-10-02 23:06:35 +00:00
|
|
|
if err = db.open(); err != nil {
|
|
|
|
return nil
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
defer db.close()
|
2017-06-15 17:35:53 +00:00
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
tm := db.getTeam(tmId)
|
2017-06-15 17:35:53 +00:00
|
|
|
if tm == nil {
|
|
|
|
return nil
|
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
return &Game{TeamId: tmId}
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
func (gm *Game) save() error {
|
2017-06-15 17:35:53 +00:00
|
|
|
var err error
|
2017-10-02 23:06:35 +00:00
|
|
|
if err = db.open(); err != nil {
|
|
|
|
return err
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
defer db.close()
|
2017-06-15 17:35:53 +00:00
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
tm := db.getTeam(gm.TeamId)
|
|
|
|
if tm == nil {
|
|
|
|
return errors.New("Invalid Team: " + gm.TeamId)
|
2017-07-14 12:28:09 +00:00
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
gamePath := []string{"teams", gm.TeamId, "game"}
|
|
|
|
if err := db.bolt.MkBucketPath(gamePath); err != nil {
|
|
|
|
return err
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
if gm.Name == "" {
|
|
|
|
gm.Name = tm.Name + "'s Game"
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
if err := db.bolt.SetValue(gamePath, "name", gm.Name); err != nil {
|
2017-06-15 17:35:53 +00:00
|
|
|
return err
|
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
if err := db.bolt.SetValue(gamePath, "link", gm.Link); err != nil {
|
2017-06-15 17:35:53 +00:00
|
|
|
return err
|
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
if err := db.bolt.SetValue(gamePath, "description", gm.Description); err != nil {
|
2017-07-14 12:28:09 +00:00
|
|
|
return err
|
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
if err := db.bolt.MkBucketPath(append(gamePath, "screenshots")); err != nil {
|
2017-07-14 12:28:09 +00:00
|
|
|
return err
|
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
|
|
|
|
return err
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
|
|
|
|
2017-10-02 23:06:35 +00:00
|
|
|
func (db *gjDatabase) getAllGames() []Game {
|
|
|
|
var ret []Game
|
|
|
|
tms := db.getAllTeams()
|
|
|
|
for i := range tms {
|
|
|
|
ret = append(ret, *tms[i].getGame())
|
2017-06-15 17:35:53 +00:00
|
|
|
}
|
2017-10-02 23:06:35 +00:00
|
|
|
return ret
|
2017-06-08 20:43:11 +00:00
|
|
|
}
|