Fix server starting, add some logs
This commit is contained in:
parent
cc134da1ed
commit
7a1ddf9c83
@ -38,6 +38,12 @@ func (s *service) Name() (name string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) Run(ctx context.Context) (err error) {
|
func (s *service) Run(ctx context.Context) (err error) {
|
||||||
|
defer func() {
|
||||||
|
if err == nil {
|
||||||
|
log.Info("api server started running on port 8080")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
s.srv = &http.Server{
|
s.srv = &http.Server{
|
||||||
Addr: ":8080",
|
Addr: ":8080",
|
||||||
}
|
}
|
||||||
@ -47,7 +53,15 @@ func (s *service) Run(ctx context.Context) (err error) {
|
|||||||
mux.HandleFunc("/appendDocument", s.appendDocument)
|
mux.HandleFunc("/appendDocument", s.appendDocument)
|
||||||
s.srv.Handler = mux
|
s.srv.Handler = mux
|
||||||
|
|
||||||
return s.srv.ListenAndServe()
|
go s.runServer()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *service) runServer() {
|
||||||
|
err := s.srv.ListenAndServe()
|
||||||
|
if err != nil {
|
||||||
|
log.With(zap.Error(err)).Error("could not run api server")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) Close(ctx context.Context) (err error) {
|
func (s *service) Close(ctx context.Context) (err error) {
|
||||||
|
|||||||
@ -3,23 +3,30 @@ package document
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/testutils/testchanges/testchangepb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/testutils/testchanges/testchangepb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/account"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/account"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/node"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/sync/message"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/sync/message"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/sync/syncpb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/sync/syncpb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/treecache"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/treecache"
|
||||||
"github.com/gogo/protobuf/proto"
|
"github.com/gogo/protobuf/proto"
|
||||||
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
var CName = "DocumentService"
|
var CName = "DocumentService"
|
||||||
|
|
||||||
|
var log = logger.NewNamed("documentservice")
|
||||||
|
|
||||||
type service struct {
|
type service struct {
|
||||||
messageService message.Service
|
messageService message.Service
|
||||||
treeCache treecache.Service
|
treeCache treecache.Service
|
||||||
account account.Service
|
account account.Service
|
||||||
|
// to create new documents we need to know all nodes
|
||||||
|
nodes []*node.Node
|
||||||
}
|
}
|
||||||
|
|
||||||
type Service interface {
|
type Service interface {
|
||||||
@ -35,6 +42,10 @@ func (s *service) Init(ctx context.Context, a *app.App) (err error) {
|
|||||||
s.account = a.MustComponent(account.CName).(account.Service)
|
s.account = a.MustComponent(account.CName).(account.Service)
|
||||||
s.messageService = a.MustComponent(message.CName).(message.Service)
|
s.messageService = a.MustComponent(message.CName).(message.Service)
|
||||||
s.treeCache = a.MustComponent(treecache.CName).(treecache.Service)
|
s.treeCache = a.MustComponent(treecache.CName).(treecache.Service)
|
||||||
|
|
||||||
|
nodesService := a.MustComponent(node.CName).(node.Service)
|
||||||
|
s.nodes = nodesService.Nodes()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +68,8 @@ func (s *service) UpdateDocument(ctx context.Context, id, text string) (err erro
|
|||||||
snapshotPath []string
|
snapshotPath []string
|
||||||
heads []string
|
heads []string
|
||||||
)
|
)
|
||||||
|
log.With(zap.String("id", id), zap.String("text", text)).
|
||||||
|
Debug("updating document")
|
||||||
|
|
||||||
err = s.treeCache.Do(ctx, id, func(tree acltree.ACLTree) error {
|
err = s.treeCache.Do(ctx, id, func(tree acltree.ACLTree) error {
|
||||||
ch, err = tree.AddContent(ctx, func(builder acltree.ChangeBuilder) error {
|
ch, err = tree.AddContent(ctx, func(builder acltree.ChangeBuilder) error {
|
||||||
@ -99,12 +112,22 @@ func (s *service) CreateDocument(ctx context.Context, text string) (id string, e
|
|||||||
snapshotPath []string
|
snapshotPath []string
|
||||||
heads []string
|
heads []string
|
||||||
)
|
)
|
||||||
|
log.With(zap.String("id", id), zap.String("text", text)).
|
||||||
|
Debug("creating document")
|
||||||
|
|
||||||
err = s.treeCache.Create(ctx, func(builder acltree.ChangeBuilder) error {
|
err = s.treeCache.Create(ctx, func(builder acltree.ChangeBuilder) error {
|
||||||
err := builder.UserAdd(acc.Identity, acc.EncKey.GetPublic(), aclpb.ACLChange_Admin)
|
err := builder.UserAdd(acc.Identity, acc.EncKey.GetPublic(), aclpb.ACLChange_Admin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// adding all predefined nodes to the document as admins
|
||||||
|
for _, n := range s.nodes {
|
||||||
|
err = builder.UserAdd(n.SigningKeyString, n.EncryptionKey, aclpb.ACLChange_Admin)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
builder.AddChangeContent(createInitialChangeContent(text))
|
builder.AddChangeContent(createInitialChangeContent(text))
|
||||||
return nil
|
return nil
|
||||||
}, func(tree acltree.ACLTree) error {
|
}, func(tree acltree.ACLTree) error {
|
||||||
|
|||||||
@ -3,12 +3,14 @@ package treecache
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/ocache"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/ocache"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/account"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/account"
|
||||||
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
const CName = "treecache"
|
const CName = "treecache"
|
||||||
@ -16,6 +18,8 @@ const CName = "treecache"
|
|||||||
type ACLTreeFunc = func(tree acltree.ACLTree) error
|
type ACLTreeFunc = func(tree acltree.ACLTree) error
|
||||||
type ChangeBuildFunc = func(builder acltree.ChangeBuilder) error
|
type ChangeBuildFunc = func(builder acltree.ChangeBuilder) error
|
||||||
|
|
||||||
|
var log = logger.NewNamed("treecache")
|
||||||
|
|
||||||
type Service interface {
|
type Service interface {
|
||||||
Do(ctx context.Context, treeId string, f ACLTreeFunc) error
|
Do(ctx context.Context, treeId string, f ACLTreeFunc) error
|
||||||
Add(ctx context.Context, treeId string, header *treepb.TreeHeader, changes []*aclpb.RawChange, f ACLTreeFunc) error
|
Add(ctx context.Context, treeId string, header *treepb.TreeHeader, changes []*aclpb.RawChange, f ACLTreeFunc) error
|
||||||
@ -48,6 +52,10 @@ func (s *service) Create(ctx context.Context, build ChangeBuildFunc, f ACLTreeFu
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) Do(ctx context.Context, treeId string, f ACLTreeFunc) error {
|
func (s *service) Do(ctx context.Context, treeId string, f ACLTreeFunc) error {
|
||||||
|
log.
|
||||||
|
With(zap.String("treeId", treeId)).
|
||||||
|
Debug("requesting tree from cache to perform operation")
|
||||||
|
|
||||||
tree, err := s.cache.Get(ctx, treeId)
|
tree, err := s.cache.Get(ctx, treeId)
|
||||||
defer s.cache.Release(treeId)
|
defer s.cache.Release(treeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -60,6 +68,10 @@ func (s *service) Do(ctx context.Context, treeId string, f ACLTreeFunc) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) Add(ctx context.Context, treeId string, header *treepb.TreeHeader, changes []*aclpb.RawChange, f ACLTreeFunc) error {
|
func (s *service) Add(ctx context.Context, treeId string, header *treepb.TreeHeader, changes []*aclpb.RawChange, f ACLTreeFunc) error {
|
||||||
|
log.
|
||||||
|
With(zap.String("treeId", treeId)).
|
||||||
|
Debug("adding tree with changes")
|
||||||
|
|
||||||
_, err := s.treeProvider.CreateTreeStorage(treeId, header, changes)
|
_, err := s.treeProvider.CreateTreeStorage(treeId, header, changes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user