[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

@ -37,8 +37,8 @@ type federate struct {
// Embed federator to give access
// to send and retrieve functions.
federation.Federator
state *state.State
tc typeutils.TypeConverter
state *state.State
converter *typeutils.Converter
}
// parseURI is a cheeky little
@ -160,12 +160,12 @@ func (f *federate) CreateStatus(ctx context.Context, status *gtsmodel.Status) er
// Convert status to an ActivityStreams
// Note, wrapped in a Create activity.
asStatus, err := f.tc.StatusToAS(ctx, status)
asStatus, err := f.converter.StatusToAS(ctx, status)
if err != nil {
return gtserror.Newf("error converting status to AS: %w", err)
}
create, err := f.tc.WrapNoteInCreate(asStatus, false)
create, err := f.converter.WrapNoteInCreate(asStatus, false)
if err != nil {
return gtserror.Newf("error wrapping status in create: %w", err)
}
@ -208,7 +208,7 @@ func (f *federate) DeleteStatus(ctx context.Context, status *gtsmodel.Status) er
}
// Wrap the status URI in a Delete activity.
delete, err := f.tc.StatusToASDelete(ctx, status)
delete, err := f.converter.StatusToASDelete(ctx, status)
if err != nil {
return gtserror.Newf("error creating Delete: %w", err)
}
@ -245,7 +245,7 @@ func (f *federate) Follow(ctx context.Context, follow *gtsmodel.Follow) error {
}
// Convert follow to ActivityStreams Follow.
asFollow, err := f.tc.FollowToAS(ctx, follow)
asFollow, err := f.converter.FollowToAS(ctx, follow)
if err != nil {
return gtserror.Newf("error converting follow to AS: %s", err)
}
@ -287,7 +287,7 @@ func (f *federate) UndoFollow(ctx context.Context, follow *gtsmodel.Follow) erro
}
// Recreate the ActivityStreams Follow.
asFollow, err := f.tc.FollowToAS(ctx, follow)
asFollow, err := f.converter.FollowToAS(ctx, follow)
if err != nil {
return gtserror.Newf("error converting follow to AS: %w", err)
}
@ -351,7 +351,7 @@ func (f *federate) UndoLike(ctx context.Context, fave *gtsmodel.StatusFave) erro
}
// Recreate the ActivityStreams Like.
like, err := f.tc.FaveToAS(ctx, fave)
like, err := f.converter.FaveToAS(ctx, fave)
if err != nil {
return gtserror.Newf("error converting fave to AS: %w", err)
}
@ -410,7 +410,7 @@ func (f *federate) UndoAnnounce(ctx context.Context, boost *gtsmodel.Status) err
}
// Recreate the ActivityStreams Announce.
asAnnounce, err := f.tc.BoostToAS(
asAnnounce, err := f.converter.BoostToAS(
ctx,
boost,
boost.Account,
@ -493,7 +493,7 @@ func (f *federate) AcceptFollow(ctx context.Context, follow *gtsmodel.Follow) er
}
// Recreate the ActivityStreams Follow.
asFollow, err := f.tc.FollowToAS(ctx, follow)
asFollow, err := f.converter.FollowToAS(ctx, follow)
if err != nil {
return gtserror.Newf("error converting follow to AS: %w", err)
}
@ -571,7 +571,7 @@ func (f *federate) RejectFollow(ctx context.Context, follow *gtsmodel.Follow) er
}
// Recreate the ActivityStreams Follow.
asFollow, err := f.tc.FollowToAS(ctx, follow)
asFollow, err := f.converter.FollowToAS(ctx, follow)
if err != nil {
return gtserror.Newf("error converting follow to AS: %w", err)
}
@ -631,7 +631,7 @@ func (f *federate) Like(ctx context.Context, fave *gtsmodel.StatusFave) error {
}
// Create the ActivityStreams Like.
like, err := f.tc.FaveToAS(ctx, fave)
like, err := f.converter.FaveToAS(ctx, fave)
if err != nil {
return gtserror.Newf("error converting fave to AS Like: %w", err)
}
@ -668,7 +668,7 @@ func (f *federate) Announce(ctx context.Context, boost *gtsmodel.Status) error {
}
// Create the ActivityStreams Announce.
announce, err := f.tc.BoostToAS(
announce, err := f.converter.BoostToAS(
ctx,
boost,
boost.Account,
@ -704,13 +704,13 @@ func (f *federate) UpdateAccount(ctx context.Context, account *gtsmodel.Account)
}
// Convert account to ActivityStreams Person.
person, err := f.tc.AccountToAS(ctx, account)
person, err := f.converter.AccountToAS(ctx, account)
if err != nil {
return gtserror.Newf("error converting account to Person: %w", err)
}
// Use ActivityStreams Person as Object of Update.
update, err := f.tc.WrapPersonInUpdate(person, account)
update, err := f.converter.WrapPersonInUpdate(person, account)
if err != nil {
return gtserror.Newf("error wrapping Person in Update: %w", err)
}
@ -747,7 +747,7 @@ func (f *federate) Block(ctx context.Context, block *gtsmodel.Block) error {
}
// Convert block to ActivityStreams Block.
asBlock, err := f.tc.BlockToAS(ctx, block)
asBlock, err := f.converter.BlockToAS(ctx, block)
if err != nil {
return gtserror.Newf("error converting block to AS: %w", err)
}
@ -789,7 +789,7 @@ func (f *federate) UndoBlock(ctx context.Context, block *gtsmodel.Block) error {
}
// Convert block to ActivityStreams Block.
asBlock, err := f.tc.BlockToAS(ctx, block)
asBlock, err := f.converter.BlockToAS(ctx, block)
if err != nil {
return gtserror.Newf("error converting block to AS: %w", err)
}
@ -861,7 +861,7 @@ func (f *federate) Flag(ctx context.Context, report *gtsmodel.Report) error {
}
// Convert report to ActivityStreams Flag.
flag, err := f.tc.ReportToASFlag(ctx, report)
flag, err := f.converter.ReportToASFlag(ctx, report)
if err != nil {
return gtserror.Newf("error converting report to AS: %w", err)
}

View file

@ -40,7 +40,7 @@ import (
// from the client/REST API.
type clientAPI struct {
state *state.State
tc typeutils.TypeConverter
converter *typeutils.Converter
surface *surface
federate *federate
wipeStatus wipeStatus
@ -242,7 +242,7 @@ func (p *clientAPI) CreateFollowReq(ctx context.Context, cMsg messages.FromClien
if err := p.federate.Follow(
ctx,
p.tc.FollowRequestToFollow(ctx, followRequest),
p.converter.FollowRequestToFollow(ctx, followRequest),
); err != nil {
return gtserror.Newf("error federating follow: %w", err)
}
@ -389,7 +389,7 @@ func (p *clientAPI) RejectFollowRequest(ctx context.Context, cMsg messages.FromC
if err := p.federate.RejectFollow(
ctx,
p.tc.FollowRequestToFollow(ctx, followReq),
p.converter.FollowRequestToFollow(ctx, followReq),
); err != nil {
return gtserror.Newf("error federating reject follow: %w", err)
}

View file

@ -33,7 +33,7 @@ import (
// - sending an email
type surface struct {
state *state.State
tc typeutils.TypeConverter
converter *typeutils.Converter
stream *stream.Processor
filter *visibility.Filter
emailSender email.Sender

View file

@ -34,7 +34,7 @@ func (s *surface) notifyMentions(
ctx context.Context,
mentions []*gtsmodel.Mention,
) error {
var errs = gtserror.NewMultiError(len(mentions))
errs := gtserror.NewMultiError(len(mentions))
for _, mention := range mentions {
if err := s.notify(
@ -208,7 +208,7 @@ func (s *surface) notify(
}
// Stream notification to the user.
apiNotif, err := s.tc.NotificationToAPINotification(ctx, notif)
apiNotif, err := s.converter.NotificationToAPINotification(ctx, notif)
if err != nil {
return gtserror.Newf("error converting notification to api representation: %w", err)
}

View file

@ -286,7 +286,6 @@ func (s *surface) listEligible(
list.ID,
status.InReplyToAccountID,
)
if err != nil {
err := gtserror.Newf(
"db error checking if account %s in list %s: %w",
@ -352,7 +351,7 @@ func (s *surface) timelineStatus(
}
// The status was inserted so stream it to the user.
apiStatus, err := s.tc.StatusToAPIStatus(ctx, status, account)
apiStatus, err := s.converter.StatusToAPIStatus(ctx, status, account)
if err != nil {
err = gtserror.Newf("error converting status %s to frontend representation: %w", status.ID, err)
return true, err

View file

@ -38,7 +38,7 @@ type Processor struct {
func New(
state *state.State,
federator federation.Federator,
tc typeutils.TypeConverter,
converter *typeutils.Converter,
filter *visibility.Filter,
emailSender email.Sender,
account *account.Processor,
@ -49,7 +49,7 @@ func New(
// wrapper struct.
surface := &surface{
state: state,
tc: tc,
converter: converter,
stream: stream,
filter: filter,
emailSender: emailSender,
@ -60,7 +60,7 @@ func New(
federate := &federate{
Federator: federator,
state: state,
tc: tc,
converter: converter,
}
// Init shared logic wipe
@ -75,7 +75,7 @@ func New(
workers: &state.Workers,
clientAPI: &clientAPI{
state: state,
tc: tc,
converter: converter,
surface: surface,
federate: federate,
wipeStatus: wipeStatus,

View file

@ -44,7 +44,7 @@ type WorkersTestSuite struct {
storage *storage.Driver
state state.State
mediaManager *media.Manager
typeconverter typeutils.TypeConverter
typeconverter *typeutils.Converter
httpClient *testrig.MockHTTPClient
transportController transport.Controller
federator federation.Federator
@ -106,7 +106,7 @@ func (suite *WorkersTestSuite) SetupTest() {
suite.testActivities = testrig.NewTestActivities(suite.testAccounts)
suite.storage = testrig.NewInMemoryStorage()
suite.state.Storage = suite.storage
suite.typeconverter = testrig.NewTestTypeConverter(suite.db)
suite.typeconverter = typeutils.NewConverter(&suite.state)
testrig.StartTimelines(
&suite.state,