started implimenting domain manager

This commit is contained in:
George Shaw 2017-12-08 15:11:18 -06:00
parent 1ba13fd5d9
commit aeff7c00c8
13 changed files with 405 additions and 1 deletions

View file

@ -14,6 +14,7 @@ import (
const (
DB_MAIN = "datastore.db"
DB_SETTINGS = "settings.db"
DB_DOMAINS = "domains.db"
)
// Bucket constants
@ -25,6 +26,9 @@ const (
// DB_SETTINGS BUCKETS
BUCKET_GENERAL = "general"
// DB_DOMAINS BUCKETS
BUCKET_DOMAINS = "domains"
)
// Error codes
@ -75,6 +79,13 @@ func Open(filepath string) (*Datastore, error) {
}
}
if strings.HasSuffix(filepath, DB_DOMAINS) {
_, err = tx.CreateBucketIfNotExists([]byte(BUCKET_DOMAINS))
if err != nil {
return err
}
}
return nil
})

32
pkg/database/domains.go Normal file
View file

@ -0,0 +1,32 @@
package database
import (
"github.com/boltdb/bolt"
"encoding/json"
)
type Struct_Domain struct {
BundleName string `json:"name"`
}
func (ds *Datastore) ListDomains(bundle string) (map[string]string, error) {
filtered := make(map[string]string)
var holder Struct_Domain
ds.handle.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte(BUCKET_DOMAINS))
c := b.Cursor()
for k, v := c.First(); k != nil; k, v = c.Next() {
json.Unmarshal(v, &holder)
if bundle == "*" || holder.BundleName == bundle {
filtered[holder.BundleName] = string(k)
}
}
return nil
})
return filtered, nil
}