package dbdata import "github.com/asdine/storm/v3/index" const PageSize = 10 func Save(data interface{}) error { return sdb.Save(data) } func Update(data interface{}) error { return sdb.Update(data) } func UpdateField(data interface{}, fieldName string, value interface{}) error { return sdb.UpdateField(data, fieldName, value) } func Del(data interface{}) error { return sdb.DeleteStruct(data) } func Set(bucket, key string, data interface{}) error { return sdb.Set(bucket, key, data) } func Get(bucket, key string, data interface{}) error { return sdb.Get(bucket, key, data) } func CountAll(data interface{}) int { n, _ := sdb.Count(data) return n } func One(fieldName string, value interface{}, to interface{}) error { return sdb.One(fieldName, value, to) } func Find(fieldName string, value interface{}, to interface{}, options ...func(q *index.Options)) error { return sdb.Find(fieldName, value, to, options...) } func All(to interface{}, limit, page int) error { opt := getOpt(limit, page) return sdb.All(to, opt) } func Prefix(fieldName string, prefix string, to interface{}, limit, page int) error { opt := getOpt(limit, page) return sdb.Prefix(fieldName, prefix, to, opt) } func getOpt(limit, page int) func(*index.Options) { skip := (page - 1) * limit opt := func(opt *index.Options) { opt.Reverse = true if limit > 0 { opt.Limit = limit } if skip > 0 { opt.Skip = skip } } return opt }