|
|
|
@ -7,7 +7,6 @@ import (
|
|
|
|
|
|
|
|
|
|
orbitdb "berty.tech/go-orbit-db"
|
|
|
|
|
"berty.tech/go-orbit-db/accesscontroller"
|
|
|
|
|
"berty.tech/go-orbit-db/events"
|
|
|
|
|
"berty.tech/go-orbit-db/iface"
|
|
|
|
|
"berty.tech/go-orbit-db/stores"
|
|
|
|
|
"berty.tech/go-orbit-db/stores/documentstore"
|
|
|
|
@ -16,6 +15,7 @@ import (
|
|
|
|
|
icore "github.com/ipfs/interface-go-ipfs-core"
|
|
|
|
|
"github.com/libp2p/go-libp2p-core/crypto"
|
|
|
|
|
"github.com/libp2p/go-libp2p-core/peer"
|
|
|
|
|
"github.com/libp2p/go-libp2p-core/event"
|
|
|
|
|
"github.com/mitchellh/mapstructure"
|
|
|
|
|
"go.uber.org/zap"
|
|
|
|
|
|
|
|
|
@ -37,7 +37,7 @@ type Database struct {
|
|
|
|
|
|
|
|
|
|
OrbitDB orbitdb.OrbitDB
|
|
|
|
|
Store orbitdb.DocumentStore
|
|
|
|
|
StoreEventChan <-chan events.Event
|
|
|
|
|
Events event.Subscription
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (db *Database) init() (error) {
|
|
|
|
@ -79,7 +79,7 @@ func (db *Database) init() (error) {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
db.StoreEventChan = db.Store.Subscribe(db.ctx)
|
|
|
|
|
db.Events, err = db.Store.EventBus().Subscribe(new(stores.EventReady))
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -156,6 +156,7 @@ func NewDatabase(
|
|
|
|
|
func (db *Database) Connect(onReady func(address string)) (error) {
|
|
|
|
|
var err error
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if db.Init {
|
|
|
|
|
err = db.init()
|
|
|
|
|
if err != nil {
|
|
|
|
@ -186,12 +187,13 @@ func (db *Database) Connect(onReady func(address string)) (error) {
|
|
|
|
|
|
|
|
|
|
go func() {
|
|
|
|
|
for {
|
|
|
|
|
for ev := range db.StoreEventChan {
|
|
|
|
|
for ev := range db.Events.Out() {
|
|
|
|
|
db.Logger.Debug("got event", zap.Any("event", ev))
|
|
|
|
|
switch ev.(type) {
|
|
|
|
|
case *stores.EventReady:
|
|
|
|
|
case stores.EventReady:
|
|
|
|
|
db.URI = db.Store.Address().String()
|
|
|
|
|
onReady(db.URI)
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -209,6 +211,8 @@ func (db *Database) Connect(onReady func(address string)) (error) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (db *Database) Disconnect() {
|
|
|
|
|
db.Events.Close()
|
|
|
|
|
db.Store.Close()
|
|
|
|
|
db.OrbitDB.Close()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|