Files
huso/nuss.go
2022-04-14 21:12:45 +02:00

73 lines
1.3 KiB
Go

package main
import (
"encoding/json"
"errors"
"github.com/xujiajun/nutsdb"
)
func ReadUser(username string) (*UserData, error) {
data, err := DbRead(bucketUsers, username)
if err != nil {
return nil, err
}
var user UserData
err = json.Unmarshal(data, &user)
return &user, err
}
func SaveUser(user *UserData) error {
data, err := json.Marshal(user)
if err != nil {
return err
}
if user.Username == "" {
return errors.New("user empty")
}
err = DbSave(bucketUsers, user.Username, data)
return err
}
func DbClean() error {
err := db.Update(
func(tx *nutsdb.Tx) error {
return db.Merge()
})
return err
}
func DbSave(bucket, key string, val []byte) error {
err := db.Update(
func(tx *nutsdb.Tx) error {
keyBytes := []byte(key)
return tx.Put(bucket, keyBytes, val, nutsdb.Persistent)
})
return err
}
func DbRead(bucket, key string) ([]byte, error) {
var val []byte
err := db.View(
func(tx *nutsdb.Tx) error {
keyBytes := []byte(key)
e, err := tx.Get(bucket, keyBytes)
if err != nil {
return err
}
val = make([]byte, len(e.Value))
copy(val, e.Value)
return err
})
return val, err
}
func DbDelete(bucket, key string, val []byte) error {
err := db.Update(
func(tx *nutsdb.Tx) error {
keyBytes := []byte(key)
return tx.Delete(bucket, keyBytes)
})
return err
}