1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 14:07:02 +09:00

Simplify cred provider logic

This commit is contained in:
mcrakhman 2023-03-02 22:40:56 +01:00 committed by Mikhail Iudin
parent dc72150c1a
commit d0117b5d6e
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
3 changed files with 18 additions and 38 deletions

View file

@ -6,28 +6,35 @@ import (
"github.com/anytypeio/any-sync/app" "github.com/anytypeio/any-sync/app"
"github.com/anytypeio/any-sync/commonspace/spacesyncproto" "github.com/anytypeio/any-sync/commonspace/spacesyncproto"
"github.com/anytypeio/any-sync/coordinator/coordinatorclient" "github.com/anytypeio/any-sync/coordinator/coordinatorclient"
"github.com/anytypeio/any-sync/nodeconf"
"github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/proto"
) )
const CName = "common.commonspace.credentialprovider" const CName = "common.commonspace.credentialprovider"
func New() CredentialProvider { func New() app.Component {
return &credentialProvider{} return &credentialProvider{}
} }
func NewNoOp() CredentialProvider {
return &noOpProvider{}
}
type CredentialProvider interface { type CredentialProvider interface {
app.Component
GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error)
} }
type noOpProvider struct {
}
func (n noOpProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) {
return nil, nil
}
type credentialProvider struct { type credentialProvider struct {
conf nodeconf.Service
client coordinatorclient.CoordinatorClient client coordinatorclient.CoordinatorClient
} }
func (c *credentialProvider) Init(a *app.App) (err error) { func (c *credentialProvider) Init(a *app.App) (err error) {
c.conf = a.MustComponent(nodeconf.CName).(nodeconf.Service)
c.client = a.MustComponent(coordinatorclient.CName).(coordinatorclient.CoordinatorClient) c.client = a.MustComponent(coordinatorclient.CName).(coordinatorclient.CoordinatorClient)
return return
} }
@ -37,9 +44,6 @@ func (c *credentialProvider) Name() (name string) {
} }
func (c *credentialProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) { func (c *credentialProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) {
if c.conf.GetLast().IsResponsible(spaceHeader.Id) {
return nil, nil
}
receipt, err := c.client.SpaceSign(ctx, spaceHeader.Id, spaceHeader.RawHeader) receipt, err := c.client.SpaceSign(ctx, spaceHeader.Id, spaceHeader.RawHeader)
if err != nil { if err != nil {
return nil, err return nil, err

View file

@ -8,7 +8,6 @@ import (
context "context" context "context"
reflect "reflect" reflect "reflect"
app "github.com/anytypeio/any-sync/app"
spacesyncproto "github.com/anytypeio/any-sync/commonspace/spacesyncproto" spacesyncproto "github.com/anytypeio/any-sync/commonspace/spacesyncproto"
gomock "github.com/golang/mock/gomock" gomock "github.com/golang/mock/gomock"
) )
@ -50,31 +49,3 @@ func (mr *MockCredentialProviderMockRecorder) GetCredential(arg0, arg1 interface
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredential", reflect.TypeOf((*MockCredentialProvider)(nil).GetCredential), arg0, arg1) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredential", reflect.TypeOf((*MockCredentialProvider)(nil).GetCredential), arg0, arg1)
} }
// Init mocks base method.
func (m *MockCredentialProvider) Init(arg0 *app.App) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Init", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// Init indicates an expected call of Init.
func (mr *MockCredentialProviderMockRecorder) Init(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockCredentialProvider)(nil).Init), arg0)
}
// Name mocks base method.
func (m *MockCredentialProvider) Name() string {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Name")
ret0, _ := ret[0].(string)
return ret0
}
// Name indicates an expected call of Name.
func (mr *MockCredentialProviderMockRecorder) Name() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockCredentialProvider)(nil).Name))
}

View file

@ -58,7 +58,12 @@ func (s *spaceService) Init(a *app.App) (err error) {
s.configurationService = a.MustComponent(nodeconf.CName).(nodeconf.Service) s.configurationService = a.MustComponent(nodeconf.CName).(nodeconf.Service)
s.treeGetter = a.MustComponent(treegetter.CName).(treegetter.TreeGetter) s.treeGetter = a.MustComponent(treegetter.CName).(treegetter.TreeGetter)
s.peermanagerProvider = a.MustComponent(peermanager.CName).(peermanager.PeerManagerProvider) s.peermanagerProvider = a.MustComponent(peermanager.CName).(peermanager.PeerManagerProvider)
s.credentialProvider = a.MustComponent(credentialprovider.CName).(credentialprovider.CredentialProvider) credProvider := a.Component(credentialprovider.CName)
if credProvider != nil {
s.credentialProvider = credProvider.(credentialprovider.CredentialProvider)
} else {
s.credentialProvider = credentialprovider.NewNoOp()
}
s.pool = a.MustComponent(pool.CName).(pool.Pool) s.pool = a.MustComponent(pool.CName).(pool.Pool)
return nil return nil
} }