diff options
author | 2023-09-23 17:44:11 +0100 | |
---|---|---|
committer | 2023-09-23 18:44:11 +0200 | |
commit | 8f67dd583d86155440e7905ae23083a9fea42f72 (patch) | |
tree | e67abf09a53c2d9053df8072b074a026969d93ef /internal/federation | |
parent | [chore] fix typo in slice.go (#2219) (diff) | |
download | gotosocial-8f67dd583d86155440e7905ae23083a9fea42f72.tar.xz |
[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
Diffstat (limited to 'internal/federation')
-rw-r--r-- | internal/federation/dereferencing/account.go | 2 | ||||
-rw-r--r-- | internal/federation/dereferencing/dereferencer.go | 6 | ||||
-rw-r--r-- | internal/federation/dereferencing/dereferencer_test.go | 7 | ||||
-rw-r--r-- | internal/federation/dereferencing/status.go | 2 | ||||
-rw-r--r-- | internal/federation/federatingdb/accept.go | 2 | ||||
-rw-r--r-- | internal/federation/federatingdb/announce.go | 2 | ||||
-rw-r--r-- | internal/federation/federatingdb/create.go | 10 | ||||
-rw-r--r-- | internal/federation/federatingdb/db.go | 14 | ||||
-rw-r--r-- | internal/federation/federatingdb/federatingdb_test.go | 4 | ||||
-rw-r--r-- | internal/federation/federatingdb/get.go | 4 | ||||
-rw-r--r-- | internal/federation/federatingdb/reject.go | 2 | ||||
-rw-r--r-- | internal/federation/federatingdb/undo.go | 6 | ||||
-rw-r--r-- | internal/federation/federator.go | 8 | ||||
-rw-r--r-- | internal/federation/federator_test.go | 4 |
14 files changed, 38 insertions, 35 deletions
diff --git a/internal/federation/dereferencing/account.go b/internal/federation/dereferencing/account.go index ec8d274a4..04efc464f 100644 --- a/internal/federation/dereferencing/account.go +++ b/internal/federation/dereferencing/account.go @@ -372,7 +372,7 @@ func (d *deref) enrichAccount(ctx context.Context, requestUser string, uri *url. } // Convert the dereferenced AP account object to our GTS model. - latestAcc, err := d.typeConverter.ASRepresentationToAccount(ctx, + latestAcc, err := d.converter.ASRepresentationToAccount(ctx, apubAcc, account.Domain, ) diff --git a/internal/federation/dereferencing/dereferencer.go b/internal/federation/dereferencing/dereferencer.go index 8beba9947..6248aa2c1 100644 --- a/internal/federation/dereferencing/dereferencer.go +++ b/internal/federation/dereferencing/dereferencer.go @@ -85,7 +85,7 @@ type Dereferencer interface { type deref struct { state *state.State - typeConverter typeutils.TypeConverter + converter *typeutils.Converter transportController transport.Controller mediaManager *media.Manager derefAvatars map[string]*media.ProcessingMedia @@ -99,10 +99,10 @@ type deref struct { } // NewDereferencer returns a Dereferencer initialized with the given parameters. -func NewDereferencer(state *state.State, typeConverter typeutils.TypeConverter, transportController transport.Controller, mediaManager *media.Manager) Dereferencer { +func NewDereferencer(state *state.State, converter *typeutils.Converter, transportController transport.Controller, mediaManager *media.Manager) Dereferencer { return &deref{ state: state, - typeConverter: typeConverter, + converter: converter, transportController: transportController, mediaManager: mediaManager, derefAvatars: make(map[string]*media.ProcessingMedia), diff --git a/internal/federation/dereferencing/dereferencer_test.go b/internal/federation/dereferencing/dereferencer_test.go index 6e9aa729c..1fefc1db9 100644 --- a/internal/federation/dereferencing/dereferencer_test.go +++ b/internal/federation/dereferencing/dereferencer_test.go @@ -25,6 +25,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/state" "github.com/superseriousbusiness/gotosocial/internal/storage" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" "github.com/superseriousbusiness/gotosocial/internal/visibility" "github.com/superseriousbusiness/gotosocial/testrig" ) @@ -63,17 +64,19 @@ func (suite *DereferencerStandardTestSuite) SetupTest() { suite.db = testrig.NewTestDB(&suite.state) + converter := typeutils.NewConverter(&suite.state) + testrig.StartTimelines( &suite.state, visibility.NewFilter(&suite.state), - testrig.NewTestTypeConverter(suite.db), + converter, ) suite.storage = testrig.NewInMemoryStorage() suite.state.DB = suite.db suite.state.Storage = suite.storage media := testrig.NewTestMediaManager(&suite.state) - suite.dereferencer = dereferencing.NewDereferencer(&suite.state, testrig.NewTestTypeConverter(suite.db), testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")), media) + suite.dereferencer = dereferencing.NewDereferencer(&suite.state, converter, testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")), media) testrig.StandardDBSetup(suite.db, nil) } diff --git a/internal/federation/dereferencing/status.go b/internal/federation/dereferencing/status.go index 8586884eb..5ec04175e 100644 --- a/internal/federation/dereferencing/status.go +++ b/internal/federation/dereferencing/status.go @@ -263,7 +263,7 @@ func (d *deref) enrichStatus( // ActivityPub model was recently dereferenced, so assume that passed status // may contain out-of-date information, convert AP model to our GTS model. - latestStatus, err := d.typeConverter.ASStatusToStatus(ctx, apubStatus) + latestStatus, err := d.converter.ASStatusToStatus(ctx, apubStatus) if err != nil { return nil, nil, gtserror.Newf("error converting statusable to gts model for status %s: %w", uri, err) } diff --git a/internal/federation/federatingdb/accept.go b/internal/federation/federatingdb/accept.go index 27dcec612..1c514d035 100644 --- a/internal/federation/federatingdb/accept.go +++ b/internal/federation/federatingdb/accept.go @@ -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) } diff --git a/internal/federation/federatingdb/announce.go b/internal/federation/federatingdb/announce.go index 334c46ba5..5a5b80bc1 100644 --- a/internal/federation/federatingdb/announce.go +++ b/internal/federation/federatingdb/announce.go @@ -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) } diff --git a/internal/federation/federatingdb/create.go b/internal/federation/federatingdb/create.go index 3c9eaf9a5..12e324166 100644 --- a/internal/federation/federatingdb/create.go +++ b/internal/federation/federatingdb/create.go @@ -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) } diff --git a/internal/federation/federatingdb/db.go b/internal/federation/federatingdb/db.go index bc1415dd5..3f35a96c3 100644 --- a/internal/federation/federatingdb/db.go +++ b/internal/federation/federatingdb/db.go @@ -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 } diff --git a/internal/federation/federatingdb/federatingdb_test.go b/internal/federation/federatingdb/federatingdb_test.go index ea5ebf0c3..5c1428ee1 100644 --- a/internal/federation/federatingdb/federatingdb_test.go +++ b/internal/federation/federatingdb/federatingdb_test.go @@ -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, diff --git a/internal/federation/federatingdb/get.go b/internal/federation/federatingdb/get.go index 9ab30db0d..eba58853f 100644 --- a/internal/federation/federatingdb/get.go +++ b/internal/federation/federatingdb/get.go @@ -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): diff --git a/internal/federation/federatingdb/reject.go b/internal/federation/federatingdb/reject.go index 10882db83..e02db18e0 100644 --- a/internal/federation/federatingdb/reject.go +++ b/internal/federation/federatingdb/reject.go @@ -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) } diff --git a/internal/federation/federatingdb/undo.go b/internal/federation/federatingdb/undo.go index 704ca5502..84a5bdd47 100644 --- a/internal/federation/federatingdb/undo.go +++ b/internal/federation/federatingdb/undo.go @@ -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) } diff --git a/internal/federation/federator.go b/internal/federation/federator.go index ad6db8ff7..1d1df4714 100644 --- a/internal/federation/federator.go +++ b/internal/federation/federator.go @@ -59,7 +59,7 @@ type federator struct { db db.DB federatingDB federatingdb.DB clock pub.Clock - typeConverter typeutils.TypeConverter + converter *typeutils.Converter transportController transport.Controller mediaManager *media.Manager actor pub.FederatingActor @@ -67,15 +67,15 @@ type federator struct { } // NewFederator returns a new federator -func NewFederator(state *state.State, federatingDB federatingdb.DB, transportController transport.Controller, typeConverter typeutils.TypeConverter, mediaManager *media.Manager) Federator { - dereferencer := dereferencing.NewDereferencer(state, typeConverter, transportController, mediaManager) +func NewFederator(state *state.State, federatingDB federatingdb.DB, transportController transport.Controller, converter *typeutils.Converter, mediaManager *media.Manager) Federator { + dereferencer := dereferencing.NewDereferencer(state, converter, transportController, mediaManager) clock := &Clock{} f := &federator{ db: state.DB, federatingDB: federatingDB, clock: &Clock{}, - typeConverter: typeConverter, + converter: converter, transportController: transportController, mediaManager: mediaManager, Dereferencer: dereferencer, diff --git a/internal/federation/federator_test.go b/internal/federation/federator_test.go index 3287cd11a..7c57dfff1 100644 --- a/internal/federation/federator_test.go +++ b/internal/federation/federator_test.go @@ -36,7 +36,7 @@ type FederatorStandardTestSuite struct { suite.Suite storage *storage.Driver state state.State - typeconverter typeutils.TypeConverter + typeconverter *typeutils.Converter transportController transport.Controller httpClient *testrig.MockHTTPClient federator federation.Federator @@ -65,7 +65,7 @@ func (suite *FederatorStandardTestSuite) SetupTest() { suite.testActivities = testrig.NewTestActivities(suite.testAccounts) suite.storage = testrig.NewInMemoryStorage() suite.state.Storage = suite.storage - suite.typeconverter = testrig.NewTestTypeConverter(suite.state.DB) + suite.typeconverter = typeutils.NewConverter(&suite.state) testrig.StartTimelines( &suite.state, |