[chore] deinterface the typeutils.Converter and update to use state structure (#2217)

* update typeconverter to use state structure

* deinterface the typeutils.TypeConverter -> typeutils.Converter

* finish copying over old type converter code comments

* fix cherry-pick merge issues, fix tests pointing to old typeutils interface type still
This commit is contained in:
kim 2023-09-23 17:44:11 +01:00 committed by GitHub
commit 8f67dd583d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
119 changed files with 611 additions and 742 deletions

View file

@ -94,7 +94,7 @@ func (f *federatingDB) Accept(ctx context.Context, accept vocab.ActivityStreamsA
return errors.New("ACCEPT: couldn't parse follow into vocab.ActivityStreamsFollow")
}
// convert the follow to something we can understand
gtsFollow, err := f.typeConverter.ASFollowToFollow(ctx, asFollow)
gtsFollow, err := f.converter.ASFollowToFollow(ctx, asFollow)
if err != nil {
return fmt.Errorf("ACCEPT: error converting asfollow to gtsfollow: %s", err)
}

View file

@ -44,7 +44,7 @@ func (f *federatingDB) Announce(ctx context.Context, announce vocab.ActivityStre
return nil // Already processed.
}
boost, isNew, err := f.typeConverter.ASAnnounceToStatus(ctx, announce)
boost, isNew, err := f.converter.ASAnnounceToStatus(ctx, announce)
if err != nil {
return gtserror.Newf("error converting announce to boost: %w", err)
}

View file

@ -94,7 +94,7 @@ func (f *federatingDB) activityBlock(ctx context.Context, asType vocab.Type, rec
return errors.New("activityBlock: could not convert type to block")
}
block, err := f.typeConverter.ASBlockToBlock(ctx, blockable)
block, err := f.converter.ASBlockToBlock(ctx, blockable)
if err != nil {
return fmt.Errorf("activityBlock: could not convert Block to gts model block")
}
@ -246,7 +246,7 @@ func (f *federatingDB) createStatusable(
// This is a non-forwarded status we can trust the requester on,
// convert this provided statusable data to a useable gtsmodel status.
status, err = f.typeConverter.ASStatusToStatus(ctx, statusable)
status, err = f.converter.ASStatusToStatus(ctx, statusable)
if err != nil {
return gtserror.Newf("error converting statusable to status: %w", err)
}
@ -333,7 +333,7 @@ func (f *federatingDB) activityFollow(ctx context.Context, asType vocab.Type, re
return errors.New("activityFollow: could not convert type to follow")
}
followRequest, err := f.typeConverter.ASFollowToFollowRequest(ctx, follow)
followRequest, err := f.converter.ASFollowToFollowRequest(ctx, follow)
if err != nil {
return fmt.Errorf("activityFollow: could not convert Follow to follow request: %s", err)
}
@ -364,7 +364,7 @@ func (f *federatingDB) activityLike(ctx context.Context, asType vocab.Type, rece
return errors.New("activityLike: could not convert type to like")
}
fave, err := f.typeConverter.ASLikeToFave(ctx, like)
fave, err := f.converter.ASLikeToFave(ctx, like)
if err != nil {
return fmt.Errorf("activityLike: could not convert Like to fave: %w", err)
}
@ -401,7 +401,7 @@ func (f *federatingDB) activityFlag(ctx context.Context, asType vocab.Type, rece
return errors.New("activityFlag: could not convert type to flag")
}
report, err := f.typeConverter.ASFlagToReport(ctx, flag)
report, err := f.converter.ASFlagToReport(ctx, flag)
if err != nil {
return fmt.Errorf("activityFlag: could not convert Flag to report: %w", err)
}

View file

@ -39,17 +39,17 @@ type DB interface {
// FederatingDB uses the underlying DB interface to implement the go-fed pub.Database interface.
// It doesn't care what the underlying implementation of the DB interface is, as long as it works.
type federatingDB struct {
locks mutexes.MutexMap
state *state.State
typeConverter typeutils.TypeConverter
locks mutexes.MutexMap
state *state.State
converter *typeutils.Converter
}
// New returns a DB interface using the given database and config
func New(state *state.State, tc typeutils.TypeConverter) DB {
func New(state *state.State, converter *typeutils.Converter) DB {
fdb := federatingDB{
locks: mutexes.NewMap(-1, -1), // use defaults
state: state,
typeConverter: tc,
locks: mutexes.NewMap(-1, -1), // use defaults
state: state,
converter: converter,
}
return &fdb
}

View file

@ -35,7 +35,7 @@ import (
type FederatingDBTestSuite struct {
suite.Suite
db db.DB
tc typeutils.TypeConverter
tc *typeutils.Converter
fromFederator chan messages.FromFediAPI
federatingDB federatingdb.DB
state state.State
@ -79,7 +79,7 @@ func (suite *FederatingDBTestSuite) SetupTest() {
suite.db = testrig.NewTestDB(&suite.state)
suite.testActivities = testrig.NewTestActivities(suite.testAccounts)
suite.tc = testrig.NewTestTypeConverter(suite.db)
suite.tc = typeutils.NewConverter(&suite.state)
testrig.StartTimelines(
&suite.state,

View file

@ -42,13 +42,13 @@ func (f *federatingDB) Get(ctx context.Context, id *url.URL) (value vocab.Type,
if err != nil {
return nil, err
}
return f.typeConverter.AccountToAS(ctx, acct)
return f.converter.AccountToAS(ctx, acct)
case uris.IsStatusesPath(id):
status, err := f.state.DB.GetStatusByURI(ctx, id.String())
if err != nil {
return nil, err
}
return f.typeConverter.StatusToAS(ctx, status)
return f.converter.StatusToAS(ctx, status)
case uris.IsFollowersPath(id):
return f.Followers(ctx, id)
case uris.IsFollowingPath(id):

View file

@ -85,7 +85,7 @@ func (f *federatingDB) Reject(ctx context.Context, reject vocab.ActivityStreamsR
}
// convert the follow to something we can understand
gtsFollow, err := f.typeConverter.ASFollowToFollow(ctx, asFollow)
gtsFollow, err := f.converter.ASFollowToFollow(ctx, asFollow)
if err != nil {
return fmt.Errorf("Reject: error converting asfollow to gtsfollow: %s", err)
}

View file

@ -97,7 +97,7 @@ func (f *federatingDB) undoFollow(
return nil
}
follow, err := f.typeConverter.ASFollowToFollow(ctx, Follow)
follow, err := f.converter.ASFollowToFollow(ctx, Follow)
if err != nil {
return fmt.Errorf("undoFollow: error converting ActivityStreams Follow to follow: %w", err)
}
@ -139,7 +139,7 @@ func (f *federatingDB) undoLike(
return nil
}
fave, err := f.typeConverter.ASLikeToFave(ctx, Like)
fave, err := f.converter.ASLikeToFave(ctx, Like)
if err != nil {
return fmt.Errorf("undoLike: error converting ActivityStreams Like to fave: %w", err)
}
@ -192,7 +192,7 @@ func (f *federatingDB) undoBlock(
return nil
}
block, err := f.typeConverter.ASBlockToBlock(ctx, Block)
block, err := f.converter.ASBlockToBlock(ctx, Block)
if err != nil {
return fmt.Errorf("undoBlock: error converting ActivityStreams Block to block: %w", err)
}