Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNoResults = errors.New("no results found") // ErrNoResults indicates query found no results ErrInvalidTableName = errors.New("invalid table") // ErrInvalidTableName indicates that specified table does not exist ErrNoConnection = errors.New("no db connection") // )
Generic error results
Functions ¶
func Connection ¶
Connection returns the connection to the store for more advanced queries by caller
Example ¶
package main
import (
"encoding/json"
"fmt"
"github.com/devilcove/boltdb"
"go.etcd.io/bbolt"
)
const UserTable = "users"
type User struct {
UserName string
Password string
IsAdmin bool
}
func main() {
if AdminExists() {
fmt.Println("admin exists")
} else {
fmt.Println("admin does not exist")
}
}
func AdminExists() bool {
var user User
var found bool
db := boltdb.Connection()
if db == nil {
return found
}
if err := db.View(func(tx *bbolt.Tx) error {
b := tx.Bucket([]byte(UserTable))
if b == nil {
return boltdb.ErrNoResults
}
_ = b.ForEach(func(k, v []byte) error {
if err := json.Unmarshal(v, &user); err != nil {
return err
}
if user.IsAdmin {
found = true
}
return nil
})
return nil
}); err != nil {
return false
}
return found
}
Output: admin does not exist
func Initialize ¶
Initialize sets up bbolt db using file path and creates tables if required
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.