This repository has been archived on 2019-11-22. You can view files and clone it, but cannot push or open issues or pull requests.
aocbot/model.go

107 lines
3.1 KiB
Go

package main
import (
"time"
"gogs.bullercodeworks.com/brian/boltease"
)
func getDatabase() (*boltease.DB, error) {
db, err := boltease.Create("aocbot.db", 0644, nil)
if err != nil {
return err
}
// Make sure that we have a 'users' bucket
db.MkBucketPath([]string{"users"})
// Make sure that we have a 'channels' bucket
db.MkBucketPath([]string{"channels"})
return db, nil
}
func (db *boltease.DB) saveUser(usr *User) error {
var err error
if err = db.OpenDB(); err != nil {
return err
}
defer db.CloseDB()
usr := []string{"users", usr.ID}
db.SetValue(append(usr, "Name"), usr.Name)
db.SetBool(append(usr, "Deleted"), usr.Deleted)
db.SetValue(append(usr, "Status"), usr.Status)
db.SetValue(append(usr, "Color"), usr.Color)
db.SetValue(append(usr, "RealName"), usr.RealName)
db.SetValue(append(usr, "TZ"), usr.TZ)
db.SetValue(append(usr, "TZLabel"), usr.TZLabel)
db.SetInt(append(usr, "TZOffset"), usr.TZOffset)
db.SetBool(append(usr, "IsAdmin"), usr.IsAdmin)
db.SetBool(append(usr, "IsOwner"), usr.IsOwner)
db.SetBool(append(usr, "IsPrimaryOwner"), usr.IsPrimaryOwner)
db.SetBool(append(usr, "IsRestricted"), usr.IsRestricted)
db.SetBool(append(usr, "IsUltraRestricted"), usr.IsUltraRestricted)
db.SetBool(append(usr, "IsBot"), usr.IsBot)
db.SetBool(append(usr, "HasFiles"), usr.HasFiles)
db.SetTimestamp(append(usr, "LastUpdated"), time.Now())
return err
}
func (db *boltease.DB) getUser(usrId string) (*User, error) {
usr := new(User)
var err error
if err = db.OpenDB(); err != nil {
return usr, err
}
defer db.CloseDB()
upath := []string{"users", usrID}
if usr.Name, err = db.GetValue(append(upath, "Name")); err != nil {
return usr, err
}
if usr.Deleted, err = db.GetBool(append(upath, "Deleted")); err != nil {
return usr, err
}
if usr.Status, err = db.GetValue(append(upath, "Status")); err != nil {
return usr, err
}
if usr.Color, err = db.GetValue(append(upath, "Color")); err != nil {
return usr, err
}
if usr.RealName, err = db.GetValue(append(upath, "RealName")); err != nil {
return usr, err
}
if usr.TZ, err = db.GetValue(append(upath, "TZ")); err != nil {
return usr, err
}
if usr.TZLabel, err = db.GetValue(append(upath, "TZLabel")); err != nil {
return usr, err
}
if usr.TZOffset, err = db.GetInt(append(upath, "TZOffset")); err != nil {
return usr, err
}
if usr.IsAdmin, err = db.GetBool(append(upath, "IsAdmin")); err != nil {
return usr, err
}
if usr.IsOwner, err = db.GetBool(append(upath, "IsOwner")); err != nil {
return usr, err
}
if usr.IsPrimaryOwner, err = db.GetBool(append(upath, "IsPrimaryOwner")); err != nil {
return usr, err
}
if usr.IsRestricted, err = db.GetBool(append(upath, "IsRestricted")); err != nil {
return usr, err
}
if usr.IsUltraRestricted, err = db.GetBool(append(upath, "IsUltraRestricted")); err != nil {
return usr, err
}
if usr.IsBot, err = db.GetBool(append(upath, "IsBot")); err != nil {
return usr, err
}
if usr.HasFiles, err = db.GetBool(append(upath, "HasFiles")); err != nil {
return usr, err
}
usr.LastUpdated, err = db.GetTimestamp(append(upath, "LastUpdated"))
return usr, err
}