Fix server starting, add some logs

This commit is contained in:
mcrakhman 2022-08-02 20:28:33 +02:00
parent cc134da1ed
commit 7a1ddf9c83
No known key found for this signature in database
GPG Key ID: DED12CFEF5B8396B
3 changed files with 50 additions and 1 deletions

View File

@ -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) {

View File

@ -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 {

View File

@ -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