diff options
author | 2023-09-23 17:44:11 +0100 | |
---|---|---|
committer | 2023-09-23 18:44:11 +0200 | |
commit | 8f67dd583d86155440e7905ae23083a9fea42f72 (patch) | |
tree | e67abf09a53c2d9053df8072b074a026969d93ef /internal/processing | |
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/processing')
65 files changed, 174 insertions, 178 deletions
diff --git a/internal/processing/account/account.go b/internal/processing/account/account.go index a32a73ac1..4432fd5f3 100644 --- a/internal/processing/account/account.go +++ b/internal/processing/account/account.go @@ -37,7 +37,7 @@ type Processor struct { c *common.Processor state *state.State - tc typeutils.TypeConverter + converter *typeutils.Converter mediaManager *media.Manager oauthServer oauth.Server filter *visibility.Filter @@ -50,7 +50,7 @@ type Processor struct { func New( common *common.Processor, state *state.State, - tc typeutils.TypeConverter, + converter *typeutils.Converter, mediaManager *media.Manager, oauthServer oauth.Server, federator federation.Federator, @@ -60,7 +60,7 @@ func New( return Processor{ c: common, state: state, - tc: tc, + converter: converter, mediaManager: mediaManager, oauthServer: oauthServer, filter: filter, diff --git a/internal/processing/account/account_test.go b/internal/processing/account/account_test.go index 2e4a64844..a23d324f8 100644 --- a/internal/processing/account/account_test.go +++ b/internal/processing/account/account_test.go @@ -43,7 +43,7 @@ type AccountStandardTestSuite struct { // standard suite interfaces suite.Suite db db.DB - tc typeutils.TypeConverter + tc *typeutils.Converter storage *storage.Driver state state.State mediaManager *media.Manager @@ -88,7 +88,7 @@ func (suite *AccountStandardTestSuite) SetupTest() { suite.db = testrig.NewTestDB(&suite.state) suite.state.DB = suite.db - suite.tc = testrig.NewTestTypeConverter(suite.db) + suite.tc = typeutils.NewConverter(&suite.state) testrig.StartTimelines( &suite.state, diff --git a/internal/processing/account/block.go b/internal/processing/account/block.go index 270048100..58b0328a4 100644 --- a/internal/processing/account/block.go +++ b/internal/processing/account/block.go @@ -155,7 +155,7 @@ func (p *Processor) BlocksGet( for _, block := range blocks { // Convert target account to frontend API model. (target will never be nil) - account, err := p.tc.AccountToAPIAccountBlocked(ctx, block.TargetAccount) + account, err := p.converter.AccountToAPIAccountBlocked(ctx, block.TargetAccount) if err != nil { log.Errorf(ctx, "error converting account to public api account: %v", err) continue diff --git a/internal/processing/account/bookmarks.go b/internal/processing/account/bookmarks.go index c6b0c14c1..88a02786e 100644 --- a/internal/processing/account/bookmarks.go +++ b/internal/processing/account/bookmarks.go @@ -67,7 +67,7 @@ func (p *Processor) BookmarksGet(ctx context.Context, requestingAccount *gtsmode } // Convert the status. - item, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) + item, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) if err != nil { log.Errorf(ctx, "error converting bookmarked status to api: %s", err) continue diff --git a/internal/processing/account/get.go b/internal/processing/account/get.go index ddb7c14e0..500c0c2e5 100644 --- a/internal/processing/account/get.go +++ b/internal/processing/account/get.go @@ -80,7 +80,7 @@ func (p *Processor) getFor(ctx context.Context, requestingAccount *gtsmodel.Acco } if blocked { - apiAccount, err := p.tc.AccountToAPIAccountBlocked(ctx, targetAccount) + apiAccount, err := p.converter.AccountToAPIAccountBlocked(ctx, targetAccount) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting account: %w", err)) } @@ -107,9 +107,9 @@ func (p *Processor) getFor(ctx context.Context, requestingAccount *gtsmodel.Acco var apiAccount *apimodel.Account if requestingAccount != nil && targetAccount.ID == requestingAccount.ID { - apiAccount, err = p.tc.AccountToAPIAccountSensitive(ctx, targetAccount) + apiAccount, err = p.converter.AccountToAPIAccountSensitive(ctx, targetAccount) } else { - apiAccount, err = p.tc.AccountToAPIAccountPublic(ctx, targetAccount) + apiAccount, err = p.converter.AccountToAPIAccountPublic(ctx, targetAccount) } if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting account: %w", err)) diff --git a/internal/processing/account/lists.go b/internal/processing/account/lists.go index 167ed3358..12fbb884b 100644 --- a/internal/processing/account/lists.go +++ b/internal/processing/account/lists.go @@ -94,7 +94,7 @@ func (p *Processor) ListsGet(ctx context.Context, requestingAccount *gtsmodel.Ac continue } - apiList, err := p.tc.ListToAPIList(ctx, list) + apiList, err := p.converter.ListToAPIList(ctx, list) if err != nil { log.Debugf(ctx, "skipping list %s due to error %q", listEntry.ListID, err) continue diff --git a/internal/processing/account/relationships.go b/internal/processing/account/relationships.go index 58c98f3ba..b9e9086c9 100644 --- a/internal/processing/account/relationships.go +++ b/internal/processing/account/relationships.go @@ -130,7 +130,7 @@ func (p *Processor) RelationshipGet(ctx context.Context, requestingAccount *gtsm return nil, gtserror.NewErrorInternalError(gtserror.Newf("error getting relationship: %s", err)) } - r, err := p.tc.RelationshipToAPIRelationship(ctx, gtsR) + r, err := p.converter.RelationshipToAPIRelationship(ctx, gtsR) if err != nil { return nil, gtserror.NewErrorInternalError(gtserror.Newf("error converting relationship: %s", err)) } diff --git a/internal/processing/account/rss.go b/internal/processing/account/rss.go index ddc07b9ad..df49af21f 100644 --- a/internal/processing/account/rss.go +++ b/internal/processing/account/rss.go @@ -122,7 +122,7 @@ func (p *Processor) GetRSSFeedForUsername(ctx context.Context, username string) // Add each status to the rss feed. for _, status := range statuses { - item, err := p.tc.StatusToRSSItem(ctx, status) + item, err := p.converter.StatusToRSSItem(ctx, status) if err != nil { err = gtserror.Newf("error converting status to feed item: %w", err) return "", gtserror.NewErrorInternalError(err) diff --git a/internal/processing/account/statuses.go b/internal/processing/account/statuses.go index 26684265c..99e9edbcf 100644 --- a/internal/processing/account/statuses.go +++ b/internal/processing/account/statuses.go @@ -103,7 +103,7 @@ func (p *Processor) StatusesGet( for _, s := range filtered { // Convert filtered statuses to API statuses. - item, err := p.tc.StatusToAPIStatus(ctx, s, requestingAccount) + item, err := p.converter.StatusToAPIStatus(ctx, s, requestingAccount) if err != nil { log.Errorf(ctx, "error convering to api status: %v", err) continue @@ -173,7 +173,7 @@ func (p *Processor) WebStatusesGet(ctx context.Context, targetAccountID string, for _, s := range statuses { // Convert fetched statuses to API statuses. - item, err := p.tc.StatusToAPIStatus(ctx, s, nil) + item, err := p.converter.StatusToAPIStatus(ctx, s, nil) if err != nil { log.Errorf(ctx, "error convering to api status: %v", err) continue diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go index ec343f160..81485e165 100644 --- a/internal/processing/account/update.go +++ b/internal/processing/account/update.go @@ -274,7 +274,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form OriginAccount: account, }) - acctSensitive, err := p.tc.AccountToAPIAccountSensitive(ctx, account) + acctSensitive, err := p.converter.AccountToAPIAccountSensitive(ctx, account) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("could not convert account into apisensitive account: %s", err)) } diff --git a/internal/processing/admin/admin.go b/internal/processing/admin/admin.go index 7353c0da8..51429c11c 100644 --- a/internal/processing/admin/admin.go +++ b/internal/processing/admin/admin.go @@ -30,7 +30,7 @@ import ( type Processor struct { state *state.State cleaner *cleaner.Cleaner - tc typeutils.TypeConverter + converter *typeutils.Converter mediaManager *media.Manager transportController transport.Controller emailSender email.Sender @@ -45,11 +45,11 @@ func (p *Processor) Actions() *Actions { } // New returns a new admin processor. -func New(state *state.State, tc typeutils.TypeConverter, mediaManager *media.Manager, transportController transport.Controller, emailSender email.Sender) Processor { +func New(state *state.State, converter *typeutils.Converter, mediaManager *media.Manager, transportController transport.Controller, emailSender email.Sender) Processor { return Processor{ state: state, cleaner: cleaner.New(state), - tc: tc, + converter: converter, mediaManager: mediaManager, transportController: transportController, emailSender: emailSender, diff --git a/internal/processing/admin/admin_test.go b/internal/processing/admin/admin_test.go index c1c4d46c2..689f33f46 100644 --- a/internal/processing/admin/admin_test.go +++ b/internal/processing/admin/admin_test.go @@ -40,7 +40,7 @@ type AdminStandardTestSuite struct { // standard suite interfaces suite.Suite db db.DB - tc typeutils.TypeConverter + tc *typeutils.Converter storage *storage.Driver state state.State mediaManager *media.Manager @@ -86,7 +86,7 @@ func (suite *AdminStandardTestSuite) SetupTest() { suite.db = testrig.NewTestDB(&suite.state) suite.state.DB = suite.db - suite.tc = testrig.NewTestTypeConverter(suite.db) + suite.tc = typeutils.NewConverter(&suite.state) testrig.StartTimelines( &suite.state, diff --git a/internal/processing/admin/domainpermission.go b/internal/processing/admin/domainpermission.go index c759c0f11..bedaf6a11 100644 --- a/internal/processing/admin/domainpermission.go +++ b/internal/processing/admin/domainpermission.go @@ -40,7 +40,7 @@ func (p *Processor) apiDomainPerm( domainPermission gtsmodel.DomainPermission, export bool, ) (*apimodel.DomainPermission, gtserror.WithCode) { - apiDomainPerm, err := p.tc.DomainPermToAPIDomainPerm(ctx, domainPermission, export) + apiDomainPerm, err := p.converter.DomainPermToAPIDomainPerm(ctx, domainPermission, export) if err != nil { err := gtserror.NewfAt(3, "error converting domain permission to api model: %w", err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/admin/emoji.go b/internal/processing/admin/emoji.go index 96b0bef07..568c4350b 100644 --- a/internal/processing/admin/emoji.go +++ b/internal/processing/admin/emoji.go @@ -84,7 +84,7 @@ func (p *Processor) EmojiCreate(ctx context.Context, account *gtsmodel.Account, return nil, gtserror.NewErrorInternalError(fmt.Errorf("error loading emoji: %s", err), "error loading emoji") } - apiEmoji, err := p.tc.EmojiToAPIEmoji(ctx, emoji) + apiEmoji, err := p.converter.EmojiToAPIEmoji(ctx, emoji) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting emoji: %s", err), "error converting emoji to api representation") } @@ -122,7 +122,7 @@ func (p *Processor) EmojisGet( items := make([]interface{}, 0, count) for _, emoji := range emojis { - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) if err != nil { err := fmt.Errorf("EmojisGet: error converting emoji to admin model emoji: %s", err) return nil, gtserror.NewErrorInternalError(err) @@ -185,7 +185,7 @@ func (p *Processor) EmojiGet(ctx context.Context, account *gtsmodel.Account, use return nil, gtserror.NewErrorInternalError(err) } - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) if err != nil { err = fmt.Errorf("EmojiGet: error converting emoji to admin api emoji: %s", err) return nil, gtserror.NewErrorInternalError(err) @@ -211,7 +211,7 @@ func (p *Processor) EmojiDelete(ctx context.Context, id string) (*apimodel.Admin return nil, gtserror.NewErrorBadRequest(err, err.Error()) } - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) if err != nil { err = fmt.Errorf("EmojiDelete: error converting emoji to admin api emoji: %s", err) return nil, gtserror.NewErrorInternalError(err) @@ -260,7 +260,7 @@ func (p *Processor) EmojiCategoriesGet(ctx context.Context) ([]*apimodel.EmojiCa apiCategories := make([]*apimodel.EmojiCategory, 0, len(categories)) for _, category := range categories { - apiCategory, err := p.tc.EmojiCategoryToAPIEmojiCategory(ctx, category) + apiCategory, err := p.converter.EmojiCategoryToAPIEmojiCategory(ctx, category) if err != nil { err := fmt.Errorf("EmojiCategoriesGet: error converting emoji category to api emoji category: %s", err) return nil, gtserror.NewErrorInternalError(err) @@ -367,7 +367,7 @@ func (p *Processor) emojiUpdateCopy(ctx context.Context, emoji *gtsmodel.Emoji, return nil, gtserror.NewErrorInternalError(err) } - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, newEmoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, newEmoji) if err != nil { err = fmt.Errorf("emojiUpdateCopy: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) return nil, gtserror.NewErrorInternalError(err) @@ -391,7 +391,7 @@ func (p *Processor) emojiUpdateDisable(ctx context.Context, emoji *gtsmodel.Emoj return nil, gtserror.NewErrorInternalError(err) } - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) if err != nil { err = fmt.Errorf("emojiUpdateDisable: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) return nil, gtserror.NewErrorInternalError(err) @@ -472,7 +472,7 @@ func (p *Processor) emojiUpdateModify(ctx context.Context, emoji *gtsmodel.Emoji } } - adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) + adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) if err != nil { err = fmt.Errorf("emojiUpdateModify: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/admin/report.go b/internal/processing/admin/report.go index e99cc2ec0..0f47cf839 100644 --- a/internal/processing/admin/report.go +++ b/internal/processing/admin/report.go @@ -58,7 +58,7 @@ func (p *Processor) ReportsGet( prevMinIDValue := reports[0].ID for _, r := range reports { - item, err := p.tc.ReportToAdminAPIReport(ctx, r, account) + item, err := p.converter.ReportToAdminAPIReport(ctx, r, account) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) } @@ -96,7 +96,7 @@ func (p *Processor) ReportGet(ctx context.Context, account *gtsmodel.Account, id return nil, gtserror.NewErrorInternalError(err) } - apimodelReport, err := p.tc.ReportToAdminAPIReport(ctx, report, account) + apimodelReport, err := p.converter.ReportToAdminAPIReport(ctx, report, account) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -144,7 +144,7 @@ func (p *Processor) ReportResolve(ctx context.Context, account *gtsmodel.Account TargetAccount: report.Account, }) - apimodelReport, err := p.tc.ReportToAdminAPIReport(ctx, updatedReport, account) + apimodelReport, err := p.converter.ReportToAdminAPIReport(ctx, updatedReport, account) if err != nil { return nil, gtserror.NewErrorInternalError(err) } diff --git a/internal/processing/admin/rule.go b/internal/processing/admin/rule.go index 40a2bdcf3..d1ee63cc8 100644 --- a/internal/processing/admin/rule.go +++ b/internal/processing/admin/rule.go @@ -35,7 +35,6 @@ func (p *Processor) RulesGet( ctx context.Context, ) ([]*apimodel.AdminInstanceRule, gtserror.WithCode) { rules, err := p.state.DB.GetActiveRules(ctx) - if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -43,7 +42,7 @@ func (p *Processor) RulesGet( apiRules := make([]*apimodel.AdminInstanceRule, len(rules)) for i := range rules { - apiRules[i] = p.tc.InstanceRuleToAdminAPIRule(&rules[i]) + apiRules[i] = p.converter.InstanceRuleToAdminAPIRule(&rules[i]) } return apiRules, nil @@ -59,7 +58,7 @@ func (p *Processor) RuleGet(ctx context.Context, id string) (*apimodel.AdminInst return nil, gtserror.NewErrorInternalError(err) } - return p.tc.InstanceRuleToAdminAPIRule(rule), nil + return p.converter.InstanceRuleToAdminAPIRule(rule), nil } // RuleCreate adds a new rule to the instance. @@ -78,7 +77,7 @@ func (p *Processor) RuleCreate(ctx context.Context, form *apimodel.InstanceRuleC return nil, gtserror.NewErrorInternalError(err) } - return p.tc.InstanceRuleToAdminAPIRule(rule), nil + return p.converter.InstanceRuleToAdminAPIRule(rule), nil } // RuleUpdate updates text for an existing rule. @@ -96,12 +95,11 @@ func (p *Processor) RuleUpdate(ctx context.Context, id string, form *apimodel.In rule.Text = form.Text updatedRule, err := p.state.DB.UpdateRule(ctx, rule) - if err != nil { return nil, gtserror.NewErrorInternalError(err) } - return p.tc.InstanceRuleToAdminAPIRule(updatedRule), nil + return p.converter.InstanceRuleToAdminAPIRule(updatedRule), nil } // RuleDelete deletes an existing rule. @@ -118,10 +116,9 @@ func (p *Processor) RuleDelete(ctx context.Context, id string) (*apimodel.AdminI rule.Deleted = util.Ptr(true) deletedRule, err := p.state.DB.UpdateRule(ctx, rule) - if err != nil { return nil, gtserror.NewErrorInternalError(err) } - return p.tc.InstanceRuleToAdminAPIRule(deletedRule), nil + return p.converter.InstanceRuleToAdminAPIRule(deletedRule), nil } diff --git a/internal/processing/app.go b/internal/processing/app.go index d4a923e8a..eef4fae0d 100644 --- a/internal/processing/app.go +++ b/internal/processing/app.go @@ -79,7 +79,7 @@ func (p *Processor) AppCreate(ctx context.Context, authed *oauth.Auth, form *api return nil, gtserror.NewErrorInternalError(err) } - apiApp, err := p.tc.AppToAPIAppSensitive(ctx, app) + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) if err != nil { return nil, gtserror.NewErrorInternalError(err) } diff --git a/internal/processing/common/common.go b/internal/processing/common/common.go index 53c298579..28fadc2a6 100644 --- a/internal/processing/common/common.go +++ b/internal/processing/common/common.go @@ -29,7 +29,7 @@ import ( // processing subsection of the codebase. type Processor struct { state *state.State - converter typeutils.TypeConverter + converter *typeutils.Converter federator federation.Federator filter *visibility.Filter } @@ -37,7 +37,7 @@ type Processor struct { // New returns a new Processor instance. func New( state *state.State, - converter typeutils.TypeConverter, + converter *typeutils.Converter, federator federation.Federator, filter *visibility.Filter, ) Processor { diff --git a/internal/processing/fedi/collections.go b/internal/processing/fedi/collections.go index 5f9c117e1..cbabbfdd6 100644 --- a/internal/processing/fedi/collections.go +++ b/internal/processing/fedi/collections.go @@ -70,7 +70,7 @@ func (p *Processor) OutboxGet(ctx context.Context, requestedUsername string, pag "last": "https://example.org/users/whatever/outbox?min_id=0&page=true" } */ - collection, err := p.tc.OutboxToASCollection(ctx, requestedAccount.OutboxURI) + collection, err := p.converter.OutboxToASCollection(ctx, requestedAccount.OutboxURI) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -90,7 +90,7 @@ func (p *Processor) OutboxGet(ctx context.Context, requestedUsername string, pag return nil, gtserror.NewErrorInternalError(err) } - outboxPage, err := p.tc.StatusesToASOutboxPage(ctx, requestedAccount.OutboxURI, maxID, minID, publicStatuses) + outboxPage, err := p.converter.StatusesToASOutboxPage(ctx, requestedAccount.OutboxURI, maxID, minID, publicStatuses) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -301,7 +301,7 @@ func (p *Processor) FeaturedCollectionGet(ctx context.Context, requestedUsername } } - collection, err := p.tc.StatusesToASFeaturedCollection(ctx, requestedAccount.FeaturedCollectionURI, statuses) + collection, err := p.converter.StatusesToASFeaturedCollection(ctx, requestedAccount.FeaturedCollectionURI, statuses) if err != nil { return nil, gtserror.NewErrorInternalError(err) } diff --git a/internal/processing/fedi/emoji.go b/internal/processing/fedi/emoji.go index ea7cb6082..4acf8c671 100644 --- a/internal/processing/fedi/emoji.go +++ b/internal/processing/fedi/emoji.go @@ -44,7 +44,7 @@ func (p *Processor) EmojiGet(ctx context.Context, requestedEmojiID string) (inte return nil, gtserror.NewErrorNotFound(fmt.Errorf("emoji with id %s has been disabled", requestedEmojiID)) } - apEmoji, err := p.tc.EmojiToAS(ctx, requestedEmoji) + apEmoji, err := p.converter.EmojiToAS(ctx, requestedEmoji) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting gtsmodel emoji with id %s to ap emoji: %s", requestedEmojiID, err)) } diff --git a/internal/processing/fedi/fedi.go b/internal/processing/fedi/fedi.go index 92a23a543..9fbcebefc 100644 --- a/internal/processing/fedi/fedi.go +++ b/internal/processing/fedi/fedi.go @@ -27,16 +27,16 @@ import ( type Processor struct { state *state.State federator federation.Federator - tc typeutils.TypeConverter + converter *typeutils.Converter filter *visibility.Filter } // New returns a new fedi processor. -func New(state *state.State, tc typeutils.TypeConverter, federator federation.Federator, filter *visibility.Filter) Processor { +func New(state *state.State, converter *typeutils.Converter, federator federation.Federator, filter *visibility.Filter) Processor { return Processor{ state: state, federator: federator, - tc: tc, + converter: converter, filter: filter, } } diff --git a/internal/processing/fedi/status.go b/internal/processing/fedi/status.go index c2a0e46d6..9b8c7dd95 100644 --- a/internal/processing/fedi/status.go +++ b/internal/processing/fedi/status.go @@ -56,7 +56,7 @@ func (p *Processor) StatusGet(ctx context.Context, requestedUsername string, req return nil, gtserror.NewErrorNotFound(err) } - asStatus, err := p.tc.StatusToAS(ctx, status) + asStatus, err := p.converter.StatusToAS(ctx, status) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -104,7 +104,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri case !page: // scenario 1 // get the collection - collection, err := p.tc.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) + collection, err := p.converter.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -116,7 +116,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri case page && !onlyOtherAccountsSet: // scenario 2 // get the collection - collection, err := p.tc.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) + collection, err := p.converter.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -166,7 +166,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri replyURIs[r.ID] = rURI } - repliesPage, err := p.tc.StatusURIsToASRepliesPage(ctx, status, onlyOtherAccounts, minID, replyURIs) + repliesPage, err := p.converter.StatusURIsToASRepliesPage(ctx, status, onlyOtherAccounts, minID, replyURIs) if err != nil { return nil, gtserror.NewErrorInternalError(err) } diff --git a/internal/processing/fedi/user.go b/internal/processing/fedi/user.go index f3305c103..67f137f25 100644 --- a/internal/processing/fedi/user.go +++ b/internal/processing/fedi/user.go @@ -54,7 +54,7 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque // the bare minimum user profile needed for the pubkey. // // TODO: https://github.com/superseriousbusiness/gotosocial/issues/1186 - minimalPerson, err := p.tc.AccountToASMinimal(ctx, requestedAccount) + minimalPerson, err := p.converter.AccountToASMinimal(ctx, requestedAccount) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -72,7 +72,7 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque } // Auth passed, generate the proper AP representation. - person, err := p.tc.AccountToAS(ctx, requestedAccount) + person, err := p.converter.AccountToAS(ctx, requestedAccount) if err != nil { return nil, gtserror.NewErrorInternalError(err) } diff --git a/internal/processing/instance.go b/internal/processing/instance.go index 2faef7527..caf2b9fc1 100644 --- a/internal/processing/instance.go +++ b/internal/processing/instance.go @@ -48,7 +48,7 @@ func (p *Processor) InstanceGetV1(ctx context.Context) (*apimodel.InstanceV1, gt return nil, gtserror.NewErrorInternalError(fmt.Errorf("db error fetching instance: %s", err)) } - ai, err := p.tc.InstanceToAPIV1Instance(ctx, i) + ai, err := p.converter.InstanceToAPIV1Instance(ctx, i) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) } @@ -62,7 +62,7 @@ func (p *Processor) InstanceGetV2(ctx context.Context) (*apimodel.InstanceV2, gt return nil, gtserror.NewErrorInternalError(fmt.Errorf("db error fetching instance: %s", err)) } - ai, err := p.tc.InstanceToAPIV2Instance(ctx, i) + ai, err := p.converter.InstanceToAPIV2Instance(ctx, i) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) } @@ -142,7 +142,7 @@ func (p *Processor) InstanceGetRules(ctx context.Context) ([]apimodel.InstanceRu return nil, gtserror.NewErrorInternalError(fmt.Errorf("db error fetching instance: %s", err)) } - return p.tc.InstanceRulesToAPIRules(i.Rules), nil + return p.converter.InstanceRulesToAPIRules(i.Rules), nil } func (p *Processor) InstancePatch(ctx context.Context, form *apimodel.InstanceSettingsUpdateRequest) (*apimodel.InstanceV1, gtserror.WithCode) { @@ -289,7 +289,7 @@ func (p *Processor) InstancePatch(ctx context.Context, form *apimodel.InstanceSe } } - ai, err := p.tc.InstanceToAPIV1Instance(ctx, instance) + ai, err := p.converter.InstanceToAPIV1Instance(ctx, instance) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) } diff --git a/internal/processing/list/get.go b/internal/processing/list/get.go index 1a03898ed..9a7e7716f 100644 --- a/internal/processing/list/get.go +++ b/internal/processing/list/get.go @@ -197,7 +197,7 @@ func (p *Processor) accountsFromListEntries( continue } - apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, listEntry.Follow.TargetAccount) + apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, listEntry.Follow.TargetAccount) if err != nil { log.Errorf(ctx, "error converting to public api account: %v", err) continue diff --git a/internal/processing/list/list.go b/internal/processing/list/list.go index f192beb60..0003816fb 100644 --- a/internal/processing/list/list.go +++ b/internal/processing/list/list.go @@ -23,13 +23,13 @@ import ( ) type Processor struct { - state *state.State - tc typeutils.TypeConverter + state *state.State + converter *typeutils.Converter } -func New(state *state.State, tc typeutils.TypeConverter) Processor { +func New(state *state.State, converter *typeutils.Converter) Processor { return Processor{ - state: state, - tc: tc, + state: state, + converter: converter, } } diff --git a/internal/processing/list/util.go b/internal/processing/list/util.go index 6186f58c7..c5b1e5081 100644 --- a/internal/processing/list/util.go +++ b/internal/processing/list/util.go @@ -53,7 +53,7 @@ func (p *Processor) getList(ctx context.Context, accountID string, listID string // apiList is a shortcut to return the API version of the given // list, or return an appropriate error if conversion fails. func (p *Processor) apiList(ctx context.Context, list *gtsmodel.List) (*apimodel.List, gtserror.WithCode) { - apiList, err := p.tc.ListToAPIList(ctx, list) + apiList, err := p.converter.ListToAPIList(ctx, list) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting list to api: %w", err)) } diff --git a/internal/processing/markers/get.go b/internal/processing/markers/get.go index dd94376f1..38e8b53dc 100644 --- a/internal/processing/markers/get.go +++ b/internal/processing/markers/get.go @@ -45,7 +45,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, names [] markers = append(markers, marker) } - apiMarker, err := p.tc.MarkersToAPIMarker(ctx, markers) + apiMarker, err := p.converter.MarkersToAPIMarker(ctx, markers) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) } diff --git a/internal/processing/markers/markers.go b/internal/processing/markers/markers.go index 7a1215241..8817ed1a7 100644 --- a/internal/processing/markers/markers.go +++ b/internal/processing/markers/markers.go @@ -23,13 +23,13 @@ import ( ) type Processor struct { - state *state.State - tc typeutils.TypeConverter + state *state.State + converter *typeutils.Converter } -func New(state *state.State, tc typeutils.TypeConverter) Processor { +func New(state *state.State, converter *typeutils.Converter) Processor { return Processor{ - state: state, - tc: tc, + state: state, + converter: converter, } } diff --git a/internal/processing/markers/update.go b/internal/processing/markers/update.go index 96eb17833..22fe65faf 100644 --- a/internal/processing/markers/update.go +++ b/internal/processing/markers/update.go @@ -39,7 +39,7 @@ func (p *Processor) Update(ctx context.Context, markers []*gtsmodel.Marker) (*ap } } - apiMarker, err := p.tc.MarkersToAPIMarker(ctx, markers) + apiMarker, err := p.converter.MarkersToAPIMarker(ctx, markers) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) } diff --git a/internal/processing/media/create.go b/internal/processing/media/create.go index cdc65dfa4..b8c469dde 100644 --- a/internal/processing/media/create.go +++ b/internal/processing/media/create.go @@ -56,7 +56,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form return nil, gtserror.NewErrorUnprocessableEntity(err) } - apiAttachment, err := p.tc.AttachmentToAPIAttachment(ctx, attachment) + apiAttachment, err := p.converter.AttachmentToAPIAttachment(ctx, attachment) if err != nil { err := fmt.Errorf("error parsing media attachment to frontend type: %s", err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/media/getemoji.go b/internal/processing/media/getemoji.go index aef3482ae..06712756a 100644 --- a/internal/processing/media/getemoji.go +++ b/internal/processing/media/getemoji.go @@ -39,7 +39,7 @@ func (p *Processor) GetCustomEmojis(ctx context.Context) ([]*apimodel.Emoji, gts apiEmojis := make([]*apimodel.Emoji, 0, len(emojis)) for _, gtsEmoji := range emojis { - apiEmoji, err := p.tc.EmojiToAPIEmoji(ctx, gtsEmoji) + apiEmoji, err := p.converter.EmojiToAPIEmoji(ctx, gtsEmoji) if err != nil { log.Errorf(ctx, "error converting emoji with id %s: %s", gtsEmoji.ID, err) continue diff --git a/internal/processing/media/getmedia.go b/internal/processing/media/getmedia.go index e815e8bcf..8f5b9d740 100644 --- a/internal/processing/media/getmedia.go +++ b/internal/processing/media/getmedia.go @@ -42,7 +42,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, mediaAtt return nil, gtserror.NewErrorNotFound(errors.New("attachment not owned by requesting account")) } - a, err := p.tc.AttachmentToAPIAttachment(ctx, attachment) + a, err := p.converter.AttachmentToAPIAttachment(ctx, attachment) if err != nil { return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) } diff --git a/internal/processing/media/media.go b/internal/processing/media/media.go index cec912874..22c455920 100644 --- a/internal/processing/media/media.go +++ b/internal/processing/media/media.go @@ -26,16 +26,16 @@ import ( type Processor struct { state *state.State - tc typeutils.TypeConverter + converter *typeutils.Converter mediaManager *media.Manager transportController transport.Controller } // New returns a new media processor. -func New(state *state.State, tc typeutils.TypeConverter, mediaManager *media.Manager, transportController transport.Controller) Processor { +func New(state *state.State, converter *typeutils.Converter, mediaManager *media.Manager, transportController transport.Controller) Processor { return Processor{ state: state, - tc: tc, + converter: converter, mediaManager: mediaManager, transportController: transportController, } diff --git a/internal/processing/media/media_test.go b/internal/processing/media/media_test.go index 97e490a9c..523428140 100644 --- a/internal/processing/media/media_test.go +++ b/internal/processing/media/media_test.go @@ -34,7 +34,7 @@ type MediaStandardTestSuite struct { // standard suite interfaces suite.Suite db db.DB - tc typeutils.TypeConverter + tc *typeutils.Converter storage *storage.Driver state state.State mediaManager *media.Manager @@ -73,7 +73,7 @@ func (suite *MediaStandardTestSuite) SetupTest() { suite.db = testrig.NewTestDB(&suite.state) suite.state.DB = suite.db - suite.tc = testrig.NewTestTypeConverter(suite.db) + suite.tc = typeutils.NewConverter(&suite.state) suite.storage = testrig.NewInMemoryStorage() suite.state.Storage = suite.storage suite.mediaManager = testrig.NewTestMediaManager(&suite.state) diff --git a/internal/processing/media/unattach.go b/internal/processing/media/unattach.go index c6eeac604..ddf2dda20 100644 --- a/internal/processing/media/unattach.go +++ b/internal/processing/media/unattach.go @@ -49,7 +49,7 @@ func (p *Processor) Unattach(ctx context.Context, account *gtsmodel.Account, med return nil, gtserror.NewErrorNotFound(fmt.Errorf("db error updating attachment: %s", err)) } - a, err := p.tc.AttachmentToAPIAttachment(ctx, attachment) + a, err := p.converter.AttachmentToAPIAttachment(ctx, attachment) if err != nil { return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) } diff --git a/internal/processing/media/update.go b/internal/processing/media/update.go index 59ade9ca5..d3a9cfe61 100644 --- a/internal/processing/media/update.go +++ b/internal/processing/media/update.go @@ -65,7 +65,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, media return nil, gtserror.NewErrorInternalError(fmt.Errorf("database error updating media: %s", err)) } - a, err := p.tc.AttachmentToAPIAttachment(ctx, attachment) + a, err := p.converter.AttachmentToAPIAttachment(ctx, attachment) if err != nil { return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) } diff --git a/internal/processing/processor.go b/internal/processing/processor.go index f814d5a96..92c7974c7 100644 --- a/internal/processing/processor.go +++ b/internal/processing/processor.go @@ -49,7 +49,7 @@ import ( // or sub processors will trigger asynchronous processing // via the workers contained in state. type Processor struct { - tc typeutils.TypeConverter + converter *typeutils.Converter oauthServer oauth.Server state *state.State @@ -126,7 +126,7 @@ func (p *Processor) Workers() *workers.Processor { // NewProcessor returns a new Processor. func NewProcessor( - tc typeutils.TypeConverter, + converter *typeutils.Converter, federator federation.Federator, oauthServer oauth.Server, mediaManager *mm.Manager, @@ -139,7 +139,7 @@ func NewProcessor( ) processor := &Processor{ - tc: tc, + converter: converter, oauthServer: oauthServer, state: state, } @@ -148,23 +148,23 @@ func NewProcessor( // // Start with sub processors that will // be required by the workers processor. - commonProcessor := common.New(state, tc, federator, filter) - accountProcessor := account.New(&commonProcessor, state, tc, mediaManager, oauthServer, federator, filter, parseMentionFunc) - mediaProcessor := media.New(state, tc, mediaManager, federator.TransportController()) + commonProcessor := common.New(state, converter, federator, filter) + accountProcessor := account.New(&commonProcessor, state, converter, mediaManager, oauthServer, federator, filter, parseMentionFunc) + mediaProcessor := media.New(state, converter, mediaManager, federator.TransportController()) streamProcessor := stream.New(state, oauthServer) // Instantiate the rest of the sub // processors + pin them to this struct. processor.account = accountProcessor - processor.admin = admin.New(state, tc, mediaManager, federator.TransportController(), emailSender) - processor.fedi = fedi.New(state, tc, federator, filter) - processor.list = list.New(state, tc) - processor.markers = markers.New(state, tc) + processor.admin = admin.New(state, converter, mediaManager, federator.TransportController(), emailSender) + processor.fedi = fedi.New(state, converter, federator, filter) + processor.list = list.New(state, converter) + processor.markers = markers.New(state, converter) processor.media = mediaProcessor - processor.report = report.New(state, tc) - processor.timeline = timeline.New(state, tc, filter) - processor.search = search.New(state, federator, tc, filter) - processor.status = status.New(state, federator, tc, filter, parseMentionFunc) + processor.report = report.New(state, converter) + processor.timeline = timeline.New(state, converter, filter) + processor.search = search.New(state, federator, converter, filter) + processor.status = status.New(state, federator, converter, filter, parseMentionFunc) processor.stream = streamProcessor processor.user = user.New(state, emailSender) @@ -174,7 +174,7 @@ func NewProcessor( processor.workers = workers.New( state, federator, - tc, + converter, filter, emailSender, &accountProcessor, diff --git a/internal/processing/processor_test.go b/internal/processing/processor_test.go index 383e1dc9f..15d943e86 100644 --- a/internal/processing/processor_test.go +++ b/internal/processing/processor_test.go @@ -44,7 +44,7 @@ type ProcessingStandardTestSuite 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 @@ -104,7 +104,7 @@ func (suite *ProcessingStandardTestSuite) 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, diff --git a/internal/processing/report/create.go b/internal/processing/report/create.go index 48f9c1ee4..c65ae0d52 100644 --- a/internal/processing/report/create.go +++ b/internal/processing/report/create.go @@ -99,7 +99,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form TargetAccount: targetAccount, }) - apiReport, err := p.tc.ReportToAPIReport(ctx, report) + apiReport, err := p.converter.ReportToAPIReport(ctx, report) if err != nil { err = fmt.Errorf("error converting report to frontend representation: %w", err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/report/get.go b/internal/processing/report/get.go index f39648832..c5c4fc223 100644 --- a/internal/processing/report/get.go +++ b/internal/processing/report/get.go @@ -45,7 +45,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, id strin return nil, gtserror.NewErrorNotFound(err) } - apiReport, err := p.tc.ReportToAPIReport(ctx, report) + apiReport, err := p.converter.ReportToAPIReport(ctx, report) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) } @@ -79,7 +79,7 @@ func (p *Processor) GetMultiple( prevMinIDValue := reports[0].ID for _, r := range reports { - item, err := p.tc.ReportToAPIReport(ctx, r) + item, err := p.converter.ReportToAPIReport(ctx, r) if err != nil { return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) } diff --git a/internal/processing/report/report.go b/internal/processing/report/report.go index 2fb11bc7f..c871172bb 100644 --- a/internal/processing/report/report.go +++ b/internal/processing/report/report.go @@ -23,13 +23,13 @@ import ( ) type Processor struct { - state *state.State - tc typeutils.TypeConverter + state *state.State + converter *typeutils.Converter } -func New(state *state.State, tc typeutils.TypeConverter) Processor { +func New(state *state.State, converter *typeutils.Converter) Processor { return Processor{ - state: state, - tc: tc, + state: state, + converter: converter, } } diff --git a/internal/processing/search/search.go b/internal/processing/search/search.go index 907877789..a7b1d4ad3 100644 --- a/internal/processing/search/search.go +++ b/internal/processing/search/search.go @@ -27,16 +27,16 @@ import ( type Processor struct { state *state.State federator federation.Federator - tc typeutils.TypeConverter + converter *typeutils.Converter filter *visibility.Filter } // New returns a new status processor. -func New(state *state.State, federator federation.Federator, tc typeutils.TypeConverter, filter *visibility.Filter) Processor { +func New(state *state.State, federator federation.Federator, converter *typeutils.Converter, filter *visibility.Filter) Processor { return Processor{ state: state, federator: federator, - tc: tc, + converter: converter, filter: filter, } } diff --git a/internal/processing/search/util.go b/internal/processing/search/util.go index c0eac0ca3..9d9175246 100644 --- a/internal/processing/search/util.go +++ b/internal/processing/search/util.go @@ -70,7 +70,7 @@ func (p *Processor) packageAccounts( continue } - apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, account) + apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, account) if err != nil { log.Debugf(ctx, "skipping account %s because it couldn't be converted to its api representation: %s", account.ID, err) continue @@ -105,7 +105,7 @@ func (p *Processor) packageStatuses( continue } - apiStatus, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) if err != nil { log.Debugf(ctx, "skipping status %s because it couldn't be converted to its api representation: %s", status.ID, err) continue @@ -137,7 +137,7 @@ func (p *Processor) packageHashtags( } else { // If API not version 1, provide slice of full tags. rangeF = func(tag *gtsmodel.Tag) { - apiTag, err := p.tc.TagToAPITag(ctx, tag, true) + apiTag, err := p.converter.TagToAPITag(ctx, tag, true) if err != nil { log.Debugf( ctx, diff --git a/internal/processing/status/boost.go b/internal/processing/status/boost.go index eccd81886..d4bdc3f43 100644 --- a/internal/processing/status/boost.go +++ b/internal/processing/status/boost.go @@ -63,7 +63,7 @@ func (p *Processor) BoostCreate(ctx context.Context, requestingAccount *gtsmodel } // it's visible! it's boostable! so let's boost the FUCK out of it - boostWrapperStatus, err := p.tc.StatusToBoost(ctx, targetStatus, requestingAccount) + boostWrapperStatus, err := p.converter.StatusToBoost(ctx, targetStatus, requestingAccount) if err != nil { return nil, gtserror.NewErrorInternalError(err) } @@ -199,7 +199,7 @@ func (p *Processor) StatusBoostedBy(ctx context.Context, requestingAccount *gtsm return nil, gtserror.NewErrorNotFound(wrapped) } - apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, account) + apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, account) if err != nil { err = fmt.Errorf("BoostedBy: error converting account to api model: %s", err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/status/common.go b/internal/processing/status/common.go index e557563f3..71eef70a1 100644 --- a/internal/processing/status/common.go +++ b/internal/processing/status/common.go @@ -29,7 +29,7 @@ import ( ) func (p *Processor) apiStatus(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (*apimodel.Status, gtserror.WithCode) { - apiStatus, err := p.tc.StatusToAPIStatus(ctx, targetStatus, requestingAccount) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, targetStatus, requestingAccount) if err != nil { err = gtserror.Newf("error converting status %s to frontend representation: %w", targetStatus.ID, err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/status/fave.go b/internal/processing/status/fave.go index 9da243312..e2bf03594 100644 --- a/internal/processing/status/fave.go +++ b/internal/processing/status/fave.go @@ -135,7 +135,7 @@ func (p *Processor) FavedBy(ctx context.Context, requestingAccount *gtsmodel.Acc continue } - apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, fave.Account) + apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, fave.Account) if err != nil { err = fmt.Errorf("FavedBy: error converting account %s to frontend representation: %w", fave.AccountID, err) return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/status/get.go b/internal/processing/status/get.go index 236f6f126..cf79b96a0 100644 --- a/internal/processing/status/get.go +++ b/internal/processing/status/get.go @@ -55,7 +55,7 @@ func (p *Processor) ContextGet(ctx context.Context, requestingAccount *gtsmodel. for _, status := range parents { if v, err := p.filter.StatusVisible(ctx, requestingAccount, status); err == nil && v { - apiStatus, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) if err == nil { context.Ancestors = append(context.Ancestors, *apiStatus) } @@ -73,7 +73,7 @@ func (p *Processor) ContextGet(ctx context.Context, requestingAccount *gtsmodel. for _, status := range children { if v, err := p.filter.StatusVisible(ctx, requestingAccount, status); err == nil && v { - apiStatus, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) if err == nil { context.Descendants = append(context.Descendants, *apiStatus) } diff --git a/internal/processing/status/status.go b/internal/processing/status/status.go index c34bff30f..bd8457eb8 100644 --- a/internal/processing/status/status.go +++ b/internal/processing/status/status.go @@ -29,18 +29,18 @@ import ( type Processor struct { state *state.State federator federation.Federator - tc typeutils.TypeConverter + converter *typeutils.Converter filter *visibility.Filter formatter text.Formatter parseMention gtsmodel.ParseMentionFunc } // New returns a new status processor. -func New(state *state.State, federator federation.Federator, tc typeutils.TypeConverter, filter *visibility.Filter, parseMention gtsmodel.ParseMentionFunc) Processor { +func New(state *state.State, federator federation.Federator, converter *typeutils.Converter, filter *visibility.Filter, parseMention gtsmodel.ParseMentionFunc) Processor { return Processor{ state: state, federator: federator, - tc: tc, + converter: converter, filter: filter, formatter: text.NewFormatter(state.DB), parseMention: parseMention, diff --git a/internal/processing/status/status_test.go b/internal/processing/status/status_test.go index a64143df4..1f73530cb 100644 --- a/internal/processing/status/status_test.go +++ b/internal/processing/status/status_test.go @@ -36,7 +36,7 @@ import ( type StatusStandardTestSuite struct { suite.Suite db db.DB - typeConverter typeutils.TypeConverter + typeConverter *typeutils.Converter tc transport.Controller storage *storage.Driver state state.State @@ -78,7 +78,7 @@ func (suite *StatusStandardTestSuite) SetupTest() { testrig.InitTestLog() suite.db = testrig.NewTestDB(&suite.state) - suite.typeConverter = testrig.NewTestTypeConverter(suite.db) + suite.typeConverter = typeutils.NewConverter(&suite.state) suite.state.DB = suite.db suite.tc = testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")) @@ -91,7 +91,7 @@ func (suite *StatusStandardTestSuite) SetupTest() { testrig.StartTimelines( &suite.state, filter, - testrig.NewTestTypeConverter(suite.db), + suite.typeConverter, ) suite.status = status.New(&suite.state, suite.federator, suite.typeConverter, filter, processing.GetParseMentionFunc(suite.db, suite.federator)) diff --git a/internal/processing/stream/notification_test.go b/internal/processing/stream/notification_test.go index 5db735db7..7ce8b95d5 100644 --- a/internal/processing/stream/notification_test.go +++ b/internal/processing/stream/notification_test.go @@ -25,7 +25,7 @@ import ( "github.com/stretchr/testify/suite" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" - "github.com/superseriousbusiness/gotosocial/testrig" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" ) type NotificationTestSuite struct { @@ -39,7 +39,7 @@ func (suite *NotificationTestSuite) TestStreamNotification() { suite.NoError(errWithCode) followAccount := suite.testAccounts["remote_account_1"] - followAccountAPIModel, err := testrig.NewTestTypeConverter(suite.db).AccountToAPIAccountPublic(context.Background(), followAccount) + followAccountAPIModel, err := typeutils.NewConverter(&suite.state).AccountToAPIAccountPublic(context.Background(), followAccount) suite.NoError(err) notification := &apimodel.Notification{ diff --git a/internal/processing/timeline/faved.go b/internal/processing/timeline/faved.go index 556ced4c3..205b15069 100644 --- a/internal/processing/timeline/faved.go +++ b/internal/processing/timeline/faved.go @@ -54,7 +54,7 @@ func (p *Processor) FavedTimelineGet(ctx context.Context, authed *oauth.Auth, ma continue } - apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, authed.Account) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, authed.Account) if err != nil { log.Errorf(ctx, "error convering to api status: %v", err) continue diff --git a/internal/processing/timeline/home.go b/internal/processing/timeline/home.go index 72940175f..126c9f668 100644 --- a/internal/processing/timeline/home.go +++ b/internal/processing/timeline/home.go @@ -84,7 +84,7 @@ func HomeTimelineFilter(state *state.State, filter *visibility.Filter) timeline. } // HomeTimelineStatusPrepare returns a function that satisfies PrepareFunction for home timelines. -func HomeTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) timeline.PrepareFunction { +func HomeTimelineStatusPrepare(state *state.State, converter *typeutils.Converter) timeline.PrepareFunction { return func(ctx context.Context, accountID string, itemID string) (timeline.Preparable, error) { status, err := state.DB.GetStatusByID(ctx, itemID) if err != nil { @@ -98,7 +98,7 @@ func HomeTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) t return nil, err } - return tc.StatusToAPIStatus(ctx, status, requestingAccount) + return converter.StatusToAPIStatus(ctx, status, requestingAccount) } } diff --git a/internal/processing/timeline/list.go b/internal/processing/timeline/list.go index 80744df15..64de288db 100644 --- a/internal/processing/timeline/list.go +++ b/internal/processing/timeline/list.go @@ -90,7 +90,7 @@ func ListTimelineFilter(state *state.State, filter *visibility.Filter) timeline. } // ListTimelineStatusPrepare returns a function that satisfies PrepareFunction for list timelines. -func ListTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) timeline.PrepareFunction { +func ListTimelineStatusPrepare(state *state.State, converter *typeutils.Converter) timeline.PrepareFunction { return func(ctx context.Context, listID string, itemID string) (timeline.Preparable, error) { status, err := state.DB.GetStatusByID(ctx, itemID) if err != nil { @@ -110,7 +110,7 @@ func ListTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) t return nil, err } - return tc.StatusToAPIStatus(ctx, status, requestingAccount) + return converter.StatusToAPIStatus(ctx, status, requestingAccount) } } diff --git a/internal/processing/timeline/notification.go b/internal/processing/timeline/notification.go index 4a79fb82a..09febdb46 100644 --- a/internal/processing/timeline/notification.go +++ b/internal/processing/timeline/notification.go @@ -87,7 +87,7 @@ func (p *Processor) NotificationsGet(ctx context.Context, authed *oauth.Auth, ma } } - item, err := p.tc.NotificationToAPINotification(ctx, n) + item, err := p.converter.NotificationToAPINotification(ctx, n) if err != nil { log.Debugf(ctx, "skipping notification %s because it couldn't be converted to its api representation: %s", n.ID, err) continue @@ -121,7 +121,7 @@ func (p *Processor) NotificationGet(ctx context.Context, account *gtsmodel.Accou return nil, gtserror.NewErrorNotFound(err) } - apiNotif, err := p.tc.NotificationToAPINotification(ctx, notif) + apiNotif, err := p.converter.NotificationToAPINotification(ctx, notif) if err != nil { if errors.Is(err, db.ErrNoEntries) { return nil, gtserror.NewErrorNotFound(err) diff --git a/internal/processing/timeline/public.go b/internal/processing/timeline/public.go index 78ca56734..eb8c0c381 100644 --- a/internal/processing/timeline/public.go +++ b/internal/processing/timeline/public.go @@ -62,7 +62,7 @@ func (p *Processor) PublicTimelineGet(ctx context.Context, authed *oauth.Auth, m continue } - apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, authed.Account) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, authed.Account) if err != nil { log.Errorf(ctx, "error convert to api status: %v", err) continue diff --git a/internal/processing/timeline/tag.go b/internal/processing/timeline/tag.go index 943aa1722..45632ce06 100644 --- a/internal/processing/timeline/tag.go +++ b/internal/processing/timeline/tag.go @@ -122,7 +122,7 @@ func (p *Processor) packageTagResponse( continue } - apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, requestingAcct) + apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, requestingAcct) if err != nil { log.Errorf(ctx, "error converting to api status: %v", err) continue diff --git a/internal/processing/timeline/timeline.go b/internal/processing/timeline/timeline.go index 7a95f9a11..bf9864398 100644 --- a/internal/processing/timeline/timeline.go +++ b/internal/processing/timeline/timeline.go @@ -24,15 +24,15 @@ import ( ) type Processor struct { - state *state.State - tc typeutils.TypeConverter - filter *visibility.Filter + state *state.State + converter *typeutils.Converter + filter *visibility.Filter } -func New(state *state.State, tc typeutils.TypeConverter, filter *visibility.Filter) Processor { +func New(state *state.State, converter *typeutils.Converter, filter *visibility.Filter) Processor { return Processor{ - state: state, - tc: tc, - filter: filter, + state: state, + converter: converter, + filter: filter, } } diff --git a/internal/processing/workers/federate.go b/internal/processing/workers/federate.go index 76bfc892e..4b2ca4de1 100644 --- a/internal/processing/workers/federate.go +++ b/internal/processing/workers/federate.go @@ -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) } diff --git a/internal/processing/workers/fromclientapi.go b/internal/processing/workers/fromclientapi.go index c48bb7044..1c668db71 100644 --- a/internal/processing/workers/fromclientapi.go +++ b/internal/processing/workers/fromclientapi.go @@ -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) } diff --git a/internal/processing/workers/surface.go b/internal/processing/workers/surface.go index a3cf9a3e1..4012dcacc 100644 --- a/internal/processing/workers/surface.go +++ b/internal/processing/workers/surface.go @@ -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 diff --git a/internal/processing/workers/surfacenotify.go b/internal/processing/workers/surfacenotify.go index 00e1205e6..5a4f77a64 100644 --- a/internal/processing/workers/surfacenotify.go +++ b/internal/processing/workers/surfacenotify.go @@ -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) } diff --git a/internal/processing/workers/surfacetimeline.go b/internal/processing/workers/surfacetimeline.go index 827cbe2f8..a13e6bc70 100644 --- a/internal/processing/workers/surfacetimeline.go +++ b/internal/processing/workers/surfacetimeline.go @@ -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 diff --git a/internal/processing/workers/workers.go b/internal/processing/workers/workers.go index 24b18a405..e512a36bf 100644 --- a/internal/processing/workers/workers.go +++ b/internal/processing/workers/workers.go @@ -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, diff --git a/internal/processing/workers/workers_test.go b/internal/processing/workers/workers_test.go index 2d5a7f5d3..5a7e645d6 100644 --- a/internal/processing/workers/workers_test.go +++ b/internal/processing/workers/workers_test.go @@ -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, |