mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 04:12:25 -05:00 
			
		
		
		
	[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:
		
					parent
					
						
							
								1b848aa1e5
							
						
					
				
			
			
				commit
				
					
						8f67dd583d
					
				
			
		
					 119 changed files with 611 additions and 742 deletions
				
			
		|  | @ -129,7 +129,7 @@ var Start action.GTSAction = func(ctx context.Context) error { | ||||||
| 	// Build handlers used in later initializations. | 	// Build handlers used in later initializations. | ||||||
| 	mediaManager := media.NewManager(&state) | 	mediaManager := media.NewManager(&state) | ||||||
| 	oauthServer := oauth.New(ctx, dbService) | 	oauthServer := oauth.New(ctx, dbService) | ||||||
| 	typeConverter := typeutils.NewConverter(dbService) | 	typeConverter := typeutils.NewConverter(&state) | ||||||
| 	filter := visibility.NewFilter(&state) | 	filter := visibility.NewFilter(&state) | ||||||
| 	federatingDB := federatingdb.New(&state, typeConverter) | 	federatingDB := federatingdb.New(&state, typeConverter) | ||||||
| 	transportController := transport.NewController(&state, federatingDB, &federation.Clock{}, client) | 	transportController := transport.NewController(&state, federatingDB, &federation.Clock{}, client) | ||||||
|  |  | ||||||
|  | @ -43,6 +43,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/timeline" | 	"github.com/superseriousbusiness/gotosocial/internal/timeline" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/tracing" | 	"github.com/superseriousbusiness/gotosocial/internal/tracing" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/web" | 	"github.com/superseriousbusiness/gotosocial/internal/web" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
|  | @ -96,7 +97,7 @@ var Start action.GTSAction = func(ctx context.Context) error { | ||||||
| 	federator := testrig.NewTestFederator(&state, transportController, mediaManager) | 	federator := testrig.NewTestFederator(&state, transportController, mediaManager) | ||||||
| 
 | 
 | ||||||
| 	emailSender := testrig.NewEmailSender("./web/template/", nil) | 	emailSender := testrig.NewEmailSender("./web/template/", nil) | ||||||
| 	typeConverter := testrig.NewTestTypeConverter(state.DB) | 	typeConverter := typeutils.NewConverter(&state) | ||||||
| 	filter := visibility.NewFilter(&state) | 	filter := visibility.NewFilter(&state) | ||||||
| 
 | 
 | ||||||
| 	// Initialize timelines. | 	// Initialize timelines. | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ import ( | ||||||
| type EmojiGetTestSuite struct { | type EmojiGetTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -75,7 +75,7 @@ func (suite *EmojiGetTestSuite) SetupTest() { | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ type UserStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -85,7 +85,7 @@ func (suite *UserStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -90,7 +91,7 @@ func (suite *AccountStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -96,7 +97,7 @@ func (suite *AdminStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -50,7 +50,7 @@ type BookmarkTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -98,7 +98,7 @@ func (suite *BookmarkTestSuite) SetupTest() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ type FavouritesStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -82,7 +82,7 @@ func (suite *FavouritesStandardTestSuite) SetupTest() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -87,7 +88,7 @@ func (suite *FollowRequestStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -89,7 +90,7 @@ func (suite *InstanceStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -88,7 +89,7 @@ func (suite *ListsStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -56,7 +56,7 @@ type MediaCreateTestSuite struct { | ||||||
| 	storage      *storage.Driver | 	storage      *storage.Driver | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	oauthServer  oauth.Server | 	oauthServer  oauth.Server | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
| 	processor    *processing.Processor | 	processor    *processing.Processor | ||||||
|  | @ -91,7 +91,7 @@ func (suite *MediaCreateTestSuite) SetupSuite() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -52,7 +52,7 @@ type MediaUpdateTestSuite struct { | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	storage      *storage.Driver | 	storage      *storage.Driver | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	oauthServer  oauth.Server | 	oauthServer  oauth.Server | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -87,7 +87,7 @@ func (suite *MediaUpdateTestSuite) SetupSuite() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -81,7 +82,7 @@ func (suite *ReportsStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/processing" | 	"github.com/superseriousbusiness/gotosocial/internal/processing" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -85,7 +86,7 @@ func (suite *SearchStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ type StatusStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -82,7 +82,7 @@ func (suite *StatusStandardTestSuite) SetupTest() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ type StreamingTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -94,7 +94,7 @@ func (suite *StreamingTestSuite) SetupTest() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ import ( | ||||||
| type UserStandardTestSuite struct { | type UserStandardTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -73,7 +73,7 @@ func (suite *UserStandardTestSuite) SetupTest() { | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ type FileserverTestSuite struct { | ||||||
| 	storage      *storage.Driver | 	storage      *storage.Driver | ||||||
| 	state        state.State | 	state        state.State | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	processor    *processing.Processor | 	processor    *processing.Processor | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	oauthServer  oauth.Server | 	oauthServer  oauth.Server | ||||||
|  | @ -79,7 +79,7 @@ func (suite *FileserverTestSuite) SetupSuite() { | ||||||
| 	suite.federator = testrig.NewTestFederator(&suite.state, testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")), suite.mediaManager) | 	suite.federator = testrig.NewTestFederator(&suite.state, testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")), suite.mediaManager) | ||||||
| 	suite.processor = testrig.NewTestProcessor(&suite.state, suite.federator, suite.emailSender, suite.mediaManager) | 	suite.processor = testrig.NewTestProcessor(&suite.state, suite.federator, suite.emailSender, suite.mediaManager) | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ type WebfingerStandardTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db           db.DB | 	db           db.DB | ||||||
| 	state        state.State | 	state        state.State | ||||||
| 	tc           typeutils.TypeConverter | 	tc           *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	emailSender  email.Sender | 	emailSender  email.Sender | ||||||
|  | @ -79,7 +79,7 @@ func (suite *WebfingerStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -34,6 +34,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/transport" | 	"github.com/superseriousbusiness/gotosocial/internal/transport" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -74,7 +75,7 @@ func (suite *MediaTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.testAttachments = testrig.NewTestAttachments() | 	suite.testAttachments = testrig.NewTestAttachments() | ||||||
|  |  | ||||||
|  | @ -22,6 +22,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/db" | 	"github.com/superseriousbusiness/gotosocial/internal/db" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -81,7 +82,8 @@ func (suite *BunDBStandardTestSuite) SetupTest() { | ||||||
| 	testrig.InitTestLog() | 	testrig.InitTestLog() | ||||||
| 	suite.state.Caches.Init() | 	suite.state.Caches.Init() | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	testrig.StartTimelines(&suite.state, visibility.NewFilter(&suite.state), testrig.NewTestTypeConverter(suite.db)) | 	converter := typeutils.NewConverter(&suite.state) | ||||||
|  | 	testrig.StartTimelines(&suite.state, visibility.NewFilter(&suite.state), converter) | ||||||
| 	testrig.StandardDBSetup(suite.db, suite.testAccounts) | 	testrig.StandardDBSetup(suite.db, suite.testAccounts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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. | 	// Convert the dereferenced AP account object to our GTS model. | ||||||
| 	latestAcc, err := d.typeConverter.ASRepresentationToAccount(ctx, | 	latestAcc, err := d.converter.ASRepresentationToAccount(ctx, | ||||||
| 		apubAcc, | 		apubAcc, | ||||||
| 		account.Domain, | 		account.Domain, | ||||||
| 	) | 	) | ||||||
|  |  | ||||||
|  | @ -85,7 +85,7 @@ type Dereferencer interface { | ||||||
| 
 | 
 | ||||||
| type deref struct { | type deref struct { | ||||||
| 	state               *state.State | 	state               *state.State | ||||||
| 	typeConverter       typeutils.TypeConverter | 	converter           *typeutils.Converter | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
| 	derefAvatars        map[string]*media.ProcessingMedia | 	derefAvatars        map[string]*media.ProcessingMedia | ||||||
|  | @ -99,10 +99,10 @@ type deref struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewDereferencer returns a Dereferencer initialized with the given parameters. | // 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{ | 	return &deref{ | ||||||
| 		state:               state, | 		state:               state, | ||||||
| 		typeConverter:       typeConverter, | 		converter:           converter, | ||||||
| 		transportController: transportController, | 		transportController: transportController, | ||||||
| 		mediaManager:        mediaManager, | 		mediaManager:        mediaManager, | ||||||
| 		derefAvatars:        make(map[string]*media.ProcessingMedia), | 		derefAvatars:        make(map[string]*media.ProcessingMedia), | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -63,17 +64,19 @@ func (suite *DereferencerStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 
 | 
 | ||||||
|  | 	converter := typeutils.NewConverter(&suite.state) | ||||||
|  | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		converter, | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 	media := testrig.NewTestMediaManager(&suite.state) | 	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) | 	testrig.StandardDBSetup(suite.db, nil) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -263,7 +263,7 @@ func (d *deref) enrichStatus( | ||||||
| 
 | 
 | ||||||
| 	// ActivityPub model was recently dereferenced, so assume that passed status | 	// ActivityPub model was recently dereferenced, so assume that passed status | ||||||
| 	// may contain out-of-date information, convert AP model to our GTS model. | 	// 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 { | 	if err != nil { | ||||||
| 		return nil, nil, gtserror.Newf("error converting statusable to gts model for status %s: %w", uri, err) | 		return nil, nil, gtserror.Newf("error converting statusable to gts model for status %s: %w", uri, err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -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") | 				return errors.New("ACCEPT: couldn't parse follow into vocab.ActivityStreamsFollow") | ||||||
| 			} | 			} | ||||||
| 			// convert the follow to something we can understand | 			// 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 { | 			if err != nil { | ||||||
| 				return fmt.Errorf("ACCEPT: error converting asfollow to gtsfollow: %s", err) | 				return fmt.Errorf("ACCEPT: error converting asfollow to gtsfollow: %s", err) | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ func (f *federatingDB) Announce(ctx context.Context, announce vocab.ActivityStre | ||||||
| 		return nil // Already processed. | 		return nil // Already processed. | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	boost, isNew, err := f.typeConverter.ASAnnounceToStatus(ctx, announce) | 	boost, isNew, err := f.converter.ASAnnounceToStatus(ctx, announce) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting announce to boost: %w", err) | 		return gtserror.Newf("error converting announce to boost: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -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") | 		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 { | 	if err != nil { | ||||||
| 		return fmt.Errorf("activityBlock: could not convert Block to gts model block") | 		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, | 	// This is a non-forwarded status we can trust the requester on, | ||||||
| 	// convert this provided statusable data to a useable gtsmodel status. | 	// 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 { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting statusable to status: %w", err) | 		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") | 		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 { | 	if err != nil { | ||||||
| 		return fmt.Errorf("activityFollow: could not convert Follow to follow request: %s", err) | 		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") | 		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 { | 	if err != nil { | ||||||
| 		return fmt.Errorf("activityLike: could not convert Like to fave: %w", err) | 		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") | 		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 { | 	if err != nil { | ||||||
| 		return fmt.Errorf("activityFlag: could not convert Flag to report: %w", err) | 		return fmt.Errorf("activityFlag: could not convert Flag to report: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -41,15 +41,15 @@ type DB interface { | ||||||
| type federatingDB struct { | type federatingDB struct { | ||||||
| 	locks     mutexes.MutexMap | 	locks     mutexes.MutexMap | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	typeConverter typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a DB interface using the given database and config | // 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{ | 	fdb := federatingDB{ | ||||||
| 		locks:     mutexes.NewMap(-1, -1), // use defaults | 		locks:     mutexes.NewMap(-1, -1), // use defaults | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		typeConverter: tc, | 		converter: converter, | ||||||
| 	} | 	} | ||||||
| 	return &fdb | 	return &fdb | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ import ( | ||||||
| type FederatingDBTestSuite struct { | type FederatingDBTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db            db.DB | 	db            db.DB | ||||||
| 	tc            typeutils.TypeConverter | 	tc            *typeutils.Converter | ||||||
| 	fromFederator chan messages.FromFediAPI | 	fromFederator chan messages.FromFediAPI | ||||||
| 	federatingDB  federatingdb.DB | 	federatingDB  federatingdb.DB | ||||||
| 	state         state.State | 	state         state.State | ||||||
|  | @ -79,7 +79,7 @@ func (suite *FederatingDBTestSuite) SetupTest() { | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -42,13 +42,13 @@ func (f *federatingDB) Get(ctx context.Context, id *url.URL) (value vocab.Type, | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 		return f.typeConverter.AccountToAS(ctx, acct) | 		return f.converter.AccountToAS(ctx, acct) | ||||||
| 	case uris.IsStatusesPath(id): | 	case uris.IsStatusesPath(id): | ||||||
| 		status, err := f.state.DB.GetStatusByURI(ctx, id.String()) | 		status, err := f.state.DB.GetStatusByURI(ctx, id.String()) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 		return f.typeConverter.StatusToAS(ctx, status) | 		return f.converter.StatusToAS(ctx, status) | ||||||
| 	case uris.IsFollowersPath(id): | 	case uris.IsFollowersPath(id): | ||||||
| 		return f.Followers(ctx, id) | 		return f.Followers(ctx, id) | ||||||
| 	case uris.IsFollowingPath(id): | 	case uris.IsFollowingPath(id): | ||||||
|  |  | ||||||
|  | @ -85,7 +85,7 @@ func (f *federatingDB) Reject(ctx context.Context, reject vocab.ActivityStreamsR | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// convert the follow to something we can understand | 			// 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 { | 			if err != nil { | ||||||
| 				return fmt.Errorf("Reject: error converting asfollow to gtsfollow: %s", err) | 				return fmt.Errorf("Reject: error converting asfollow to gtsfollow: %s", err) | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -97,7 +97,7 @@ func (f *federatingDB) undoFollow( | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	follow, err := f.typeConverter.ASFollowToFollow(ctx, Follow) | 	follow, err := f.converter.ASFollowToFollow(ctx, Follow) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("undoFollow: error converting ActivityStreams Follow to follow: %w", err) | 		return fmt.Errorf("undoFollow: error converting ActivityStreams Follow to follow: %w", err) | ||||||
| 	} | 	} | ||||||
|  | @ -139,7 +139,7 @@ func (f *federatingDB) undoLike( | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fave, err := f.typeConverter.ASLikeToFave(ctx, Like) | 	fave, err := f.converter.ASLikeToFave(ctx, Like) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("undoLike: error converting ActivityStreams Like to fave: %w", err) | 		return fmt.Errorf("undoLike: error converting ActivityStreams Like to fave: %w", err) | ||||||
| 	} | 	} | ||||||
|  | @ -192,7 +192,7 @@ func (f *federatingDB) undoBlock( | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	block, err := f.typeConverter.ASBlockToBlock(ctx, Block) | 	block, err := f.converter.ASBlockToBlock(ctx, Block) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("undoBlock: error converting ActivityStreams Block to block: %w", err) | 		return fmt.Errorf("undoBlock: error converting ActivityStreams Block to block: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -59,7 +59,7 @@ type federator struct { | ||||||
| 	db                  db.DB | 	db                  db.DB | ||||||
| 	federatingDB        federatingdb.DB | 	federatingDB        federatingdb.DB | ||||||
| 	clock               pub.Clock | 	clock               pub.Clock | ||||||
| 	typeConverter       typeutils.TypeConverter | 	converter           *typeutils.Converter | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
| 	actor               pub.FederatingActor | 	actor               pub.FederatingActor | ||||||
|  | @ -67,15 +67,15 @@ type federator struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewFederator returns a new federator | // NewFederator returns a new federator | ||||||
| func NewFederator(state *state.State, federatingDB federatingdb.DB, transportController transport.Controller, typeConverter typeutils.TypeConverter, mediaManager *media.Manager) Federator { | func NewFederator(state *state.State, federatingDB federatingdb.DB, transportController transport.Controller, converter *typeutils.Converter, mediaManager *media.Manager) Federator { | ||||||
| 	dereferencer := dereferencing.NewDereferencer(state, typeConverter, transportController, mediaManager) | 	dereferencer := dereferencing.NewDereferencer(state, converter, transportController, mediaManager) | ||||||
| 
 | 
 | ||||||
| 	clock := &Clock{} | 	clock := &Clock{} | ||||||
| 	f := &federator{ | 	f := &federator{ | ||||||
| 		db:                  state.DB, | 		db:                  state.DB, | ||||||
| 		federatingDB:        federatingDB, | 		federatingDB:        federatingDB, | ||||||
| 		clock:               &Clock{}, | 		clock:               &Clock{}, | ||||||
| 		typeConverter:       typeConverter, | 		converter:           converter, | ||||||
| 		transportController: transportController, | 		transportController: transportController, | ||||||
| 		mediaManager:        mediaManager, | 		mediaManager:        mediaManager, | ||||||
| 		Dereferencer:        dereferencer, | 		Dereferencer:        dereferencer, | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ type FederatorStandardTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	storage             *storage.Driver | 	storage             *storage.Driver | ||||||
| 	state               state.State | 	state               state.State | ||||||
| 	typeconverter       typeutils.TypeConverter | 	typeconverter       *typeutils.Converter | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| 	httpClient          *testrig.MockHTTPClient | 	httpClient          *testrig.MockHTTPClient | ||||||
| 	federator           federation.Federator | 	federator           federation.Federator | ||||||
|  | @ -65,7 +65,7 @@ func (suite *FederatorStandardTestSuite) SetupTest() { | ||||||
| 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 	suite.typeconverter = testrig.NewTestTypeConverter(suite.state.DB) | 	suite.typeconverter = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ import ( | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/state" | 	"github.com/superseriousbusiness/gotosocial/internal/state" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/storage" | 	"github.com/superseriousbusiness/gotosocial/internal/storage" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/transport" | 	"github.com/superseriousbusiness/gotosocial/internal/transport" | ||||||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | 	"github.com/superseriousbusiness/gotosocial/internal/visibility" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||||
| ) | ) | ||||||
|  | @ -60,7 +61,7 @@ func (suite *MediaStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		visibility.NewFilter(&suite.state), | 		visibility.NewFilter(&suite.state), | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		typeutils.NewConverter(&suite.state), | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.testAttachments = testrig.NewTestAttachments() | 	suite.testAttachments = testrig.NewTestAttachments() | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ type Processor struct { | ||||||
| 	c *common.Processor | 	c *common.Processor | ||||||
| 
 | 
 | ||||||
| 	state        *state.State | 	state        *state.State | ||||||
| 	tc           typeutils.TypeConverter | 	converter    *typeutils.Converter | ||||||
| 	mediaManager *media.Manager | 	mediaManager *media.Manager | ||||||
| 	oauthServer  oauth.Server | 	oauthServer  oauth.Server | ||||||
| 	filter       *visibility.Filter | 	filter       *visibility.Filter | ||||||
|  | @ -50,7 +50,7 @@ type Processor struct { | ||||||
| func New( | func New( | ||||||
| 	common *common.Processor, | 	common *common.Processor, | ||||||
| 	state *state.State, | 	state *state.State, | ||||||
| 	tc typeutils.TypeConverter, | 	converter *typeutils.Converter, | ||||||
| 	mediaManager *media.Manager, | 	mediaManager *media.Manager, | ||||||
| 	oauthServer oauth.Server, | 	oauthServer oauth.Server, | ||||||
| 	federator federation.Federator, | 	federator federation.Federator, | ||||||
|  | @ -60,7 +60,7 @@ func New( | ||||||
| 	return Processor{ | 	return Processor{ | ||||||
| 		c:            common, | 		c:            common, | ||||||
| 		state:        state, | 		state:        state, | ||||||
| 		tc:           tc, | 		converter:    converter, | ||||||
| 		mediaManager: mediaManager, | 		mediaManager: mediaManager, | ||||||
| 		oauthServer:  oauthServer, | 		oauthServer:  oauthServer, | ||||||
| 		filter:       filter, | 		filter:       filter, | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ type AccountStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db                  db.DB | 	db                  db.DB | ||||||
| 	tc                  typeutils.TypeConverter | 	tc                  *typeutils.Converter | ||||||
| 	storage             *storage.Driver | 	storage             *storage.Driver | ||||||
| 	state               state.State | 	state               state.State | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
|  | @ -88,7 +88,7 @@ func (suite *AccountStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -155,7 +155,7 @@ func (p *Processor) BlocksGet( | ||||||
| 
 | 
 | ||||||
| 	for _, block := range blocks { | 	for _, block := range blocks { | ||||||
| 		// Convert target account to frontend API model. (target will never be nil) | 		// 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 { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error converting account to public api account: %v", err) | 			log.Errorf(ctx, "error converting account to public api account: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -67,7 +67,7 @@ func (p *Processor) BookmarksGet(ctx context.Context, requestingAccount *gtsmode | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// Convert the status. | 		// Convert the status. | ||||||
| 		item, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) | 		item, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error converting bookmarked status to api: %s", err) | 			log.Errorf(ctx, "error converting bookmarked status to api: %s", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -80,7 +80,7 @@ func (p *Processor) getFor(ctx context.Context, requestingAccount *gtsmodel.Acco | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if blocked { | 		if blocked { | ||||||
| 			apiAccount, err := p.tc.AccountToAPIAccountBlocked(ctx, targetAccount) | 			apiAccount, err := p.converter.AccountToAPIAccountBlocked(ctx, targetAccount) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting account: %w", err)) | 				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 | 	var apiAccount *apimodel.Account | ||||||
| 
 | 
 | ||||||
| 	if requestingAccount != nil && targetAccount.ID == requestingAccount.ID { | 	if requestingAccount != nil && targetAccount.ID == requestingAccount.ID { | ||||||
| 		apiAccount, err = p.tc.AccountToAPIAccountSensitive(ctx, targetAccount) | 		apiAccount, err = p.converter.AccountToAPIAccountSensitive(ctx, targetAccount) | ||||||
| 	} else { | 	} else { | ||||||
| 		apiAccount, err = p.tc.AccountToAPIAccountPublic(ctx, targetAccount) | 		apiAccount, err = p.converter.AccountToAPIAccountPublic(ctx, targetAccount) | ||||||
| 	} | 	} | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting account: %w", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting account: %w", err)) | ||||||
|  |  | ||||||
|  | @ -94,7 +94,7 @@ func (p *Processor) ListsGet(ctx context.Context, requestingAccount *gtsmodel.Ac | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiList, err := p.tc.ListToAPIList(ctx, list) | 		apiList, err := p.converter.ListToAPIList(ctx, list) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Debugf(ctx, "skipping list %s due to error %q", listEntry.ListID, err) | 			log.Debugf(ctx, "skipping list %s due to error %q", listEntry.ListID, err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -130,7 +130,7 @@ func (p *Processor) RelationshipGet(ctx context.Context, requestingAccount *gtsm | ||||||
| 		return nil, gtserror.NewErrorInternalError(gtserror.Newf("error getting relationship: %s", err)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(gtserror.Newf("error converting relationship: %s", err)) | 		return nil, gtserror.NewErrorInternalError(gtserror.Newf("error converting relationship: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ func (p *Processor) GetRSSFeedForUsername(ctx context.Context, username string) | ||||||
| 
 | 
 | ||||||
| 		// Add each status to the rss feed. | 		// Add each status to the rss feed. | ||||||
| 		for _, status := range statuses { | 		for _, status := range statuses { | ||||||
| 			item, err := p.tc.StatusToRSSItem(ctx, status) | 			item, err := p.converter.StatusToRSSItem(ctx, status) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				err = gtserror.Newf("error converting status to feed item: %w", err) | 				err = gtserror.Newf("error converting status to feed item: %w", err) | ||||||
| 				return "", gtserror.NewErrorInternalError(err) | 				return "", gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -103,7 +103,7 @@ func (p *Processor) StatusesGet( | ||||||
| 
 | 
 | ||||||
| 	for _, s := range filtered { | 	for _, s := range filtered { | ||||||
| 		// Convert filtered statuses to API statuses. | 		// 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 { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error convering to api status: %v", err) | 			log.Errorf(ctx, "error convering to api status: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  | @ -173,7 +173,7 @@ func (p *Processor) WebStatusesGet(ctx context.Context, targetAccountID string, | ||||||
| 
 | 
 | ||||||
| 	for _, s := range statuses { | 	for _, s := range statuses { | ||||||
| 		// Convert fetched statuses to API 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 { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error convering to api status: %v", err) | 			log.Errorf(ctx, "error convering to api status: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -274,7 +274,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form | ||||||
| 		OriginAccount:  account, | 		OriginAccount:  account, | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	acctSensitive, err := p.tc.AccountToAPIAccountSensitive(ctx, account) | 	acctSensitive, err := p.converter.AccountToAPIAccountSensitive(ctx, account) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("could not convert account into apisensitive account: %s", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("could not convert account into apisensitive account: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ import ( | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state               *state.State | 	state               *state.State | ||||||
| 	cleaner             *cleaner.Cleaner | 	cleaner             *cleaner.Cleaner | ||||||
| 	tc                  typeutils.TypeConverter | 	converter           *typeutils.Converter | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| 	emailSender         email.Sender | 	emailSender         email.Sender | ||||||
|  | @ -45,11 +45,11 @@ func (p *Processor) Actions() *Actions { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a new admin processor. | // 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{ | 	return Processor{ | ||||||
| 		state:               state, | 		state:               state, | ||||||
| 		cleaner:             cleaner.New(state), | 		cleaner:             cleaner.New(state), | ||||||
| 		tc:                  tc, | 		converter:           converter, | ||||||
| 		mediaManager:        mediaManager, | 		mediaManager:        mediaManager, | ||||||
| 		transportController: transportController, | 		transportController: transportController, | ||||||
| 		emailSender:         emailSender, | 		emailSender:         emailSender, | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ type AdminStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db                  db.DB | 	db                  db.DB | ||||||
| 	tc                  typeutils.TypeConverter | 	tc                  *typeutils.Converter | ||||||
| 	storage             *storage.Driver | 	storage             *storage.Driver | ||||||
| 	state               state.State | 	state               state.State | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
|  | @ -86,7 +86,7 @@ func (suite *AdminStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ func (p *Processor) apiDomainPerm( | ||||||
| 	domainPermission gtsmodel.DomainPermission, | 	domainPermission gtsmodel.DomainPermission, | ||||||
| 	export bool, | 	export bool, | ||||||
| ) (*apimodel.DomainPermission, gtserror.WithCode) { | ) (*apimodel.DomainPermission, gtserror.WithCode) { | ||||||
| 	apiDomainPerm, err := p.tc.DomainPermToAPIDomainPerm(ctx, domainPermission, export) | 	apiDomainPerm, err := p.converter.DomainPermToAPIDomainPerm(ctx, domainPermission, export) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err := gtserror.NewfAt(3, "error converting domain permission to api model: %w", err) | 		err := gtserror.NewfAt(3, "error converting domain permission to api model: %w", err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -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") | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting emoji: %s", err), "error converting emoji to api representation") | 		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) | 	items := make([]interface{}, 0, count) | ||||||
| 	for _, emoji := range emojis { | 	for _, emoji := range emojis { | ||||||
| 		adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) | 		adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			err := fmt.Errorf("EmojisGet: error converting emoji to admin model emoji: %s", err) | 			err := fmt.Errorf("EmojisGet: error converting emoji to admin model emoji: %s", err) | ||||||
| 			return nil, gtserror.NewErrorInternalError(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) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) | 	adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("EmojiGet: error converting emoji to admin api emoji: %s", err) | 		err = fmt.Errorf("EmojiGet: error converting emoji to admin api emoji: %s", err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(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()) | 		return nil, gtserror.NewErrorBadRequest(err, err.Error()) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) | 	adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("EmojiDelete: error converting emoji to admin api emoji: %s", err) | 		err = fmt.Errorf("EmojiDelete: error converting emoji to admin api emoji: %s", err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(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)) | 	apiCategories := make([]*apimodel.EmojiCategory, 0, len(categories)) | ||||||
| 	for _, category := range categories { | 	for _, category := range categories { | ||||||
| 		apiCategory, err := p.tc.EmojiCategoryToAPIEmojiCategory(ctx, category) | 		apiCategory, err := p.converter.EmojiCategoryToAPIEmojiCategory(ctx, category) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			err := fmt.Errorf("EmojiCategoriesGet: error converting emoji category to api emoji category: %s", err) | 			err := fmt.Errorf("EmojiCategoriesGet: error converting emoji category to api emoji category: %s", err) | ||||||
| 			return nil, gtserror.NewErrorInternalError(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) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, newEmoji) | 	adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, newEmoji) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("emojiUpdateCopy: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | 		err = fmt.Errorf("emojiUpdateCopy: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(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) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	adminEmoji, err := p.tc.EmojiToAdminAPIEmoji(ctx, emoji) | 	adminEmoji, err := p.converter.EmojiToAdminAPIEmoji(ctx, emoji) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("emojiUpdateDisable: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | 		err = fmt.Errorf("emojiUpdateDisable: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(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 { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("emojiUpdateModify: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | 		err = fmt.Errorf("emojiUpdateModify: error converting updated emoji %s to admin emoji: %s", emoji.ID, err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ func (p *Processor) ReportsGet( | ||||||
| 	prevMinIDValue := reports[0].ID | 	prevMinIDValue := reports[0].ID | ||||||
| 
 | 
 | ||||||
| 	for _, r := range reports { | 	for _, r := range reports { | ||||||
| 		item, err := p.tc.ReportToAdminAPIReport(ctx, r, account) | 		item, err := p.converter.ReportToAdminAPIReport(ctx, r, account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) | 			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) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apimodelReport, err := p.tc.ReportToAdminAPIReport(ctx, report, account) | 	apimodelReport, err := p.converter.ReportToAdminAPIReport(ctx, report, account) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  | @ -144,7 +144,7 @@ func (p *Processor) ReportResolve(ctx context.Context, account *gtsmodel.Account | ||||||
| 		TargetAccount:  report.Account, | 		TargetAccount:  report.Account, | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	apimodelReport, err := p.tc.ReportToAdminAPIReport(ctx, updatedReport, account) | 	apimodelReport, err := p.converter.ReportToAdminAPIReport(ctx, updatedReport, account) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -35,7 +35,6 @@ func (p *Processor) RulesGet( | ||||||
| 	ctx context.Context, | 	ctx context.Context, | ||||||
| ) ([]*apimodel.AdminInstanceRule, gtserror.WithCode) { | ) ([]*apimodel.AdminInstanceRule, gtserror.WithCode) { | ||||||
| 	rules, err := p.state.DB.GetActiveRules(ctx) | 	rules, err := p.state.DB.GetActiveRules(ctx) | ||||||
| 
 |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  | @ -43,7 +42,7 @@ func (p *Processor) RulesGet( | ||||||
| 	apiRules := make([]*apimodel.AdminInstanceRule, len(rules)) | 	apiRules := make([]*apimodel.AdminInstanceRule, len(rules)) | ||||||
| 
 | 
 | ||||||
| 	for i := range rules { | 	for i := range rules { | ||||||
| 		apiRules[i] = p.tc.InstanceRuleToAdminAPIRule(&rules[i]) | 		apiRules[i] = p.converter.InstanceRuleToAdminAPIRule(&rules[i]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return apiRules, nil | 	return apiRules, nil | ||||||
|  | @ -59,7 +58,7 @@ func (p *Processor) RuleGet(ctx context.Context, id string) (*apimodel.AdminInst | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		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. | // 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 nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return p.tc.InstanceRuleToAdminAPIRule(rule), nil | 	return p.converter.InstanceRuleToAdminAPIRule(rule), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RuleUpdate updates text for an existing rule. | // 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 | 	rule.Text = form.Text | ||||||
| 
 | 
 | ||||||
| 	updatedRule, err := p.state.DB.UpdateRule(ctx, rule) | 	updatedRule, err := p.state.DB.UpdateRule(ctx, rule) | ||||||
| 
 |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return p.tc.InstanceRuleToAdminAPIRule(updatedRule), nil | 	return p.converter.InstanceRuleToAdminAPIRule(updatedRule), nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RuleDelete deletes an existing rule. | // 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) | 	rule.Deleted = util.Ptr(true) | ||||||
| 	deletedRule, err := p.state.DB.UpdateRule(ctx, rule) | 	deletedRule, err := p.state.DB.UpdateRule(ctx, rule) | ||||||
| 
 |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return p.tc.InstanceRuleToAdminAPIRule(deletedRule), nil | 	return p.converter.InstanceRuleToAdminAPIRule(deletedRule), nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -79,7 +79,7 @@ func (p *Processor) AppCreate(ctx context.Context, authed *oauth.Auth, form *api | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apiApp, err := p.tc.AppToAPIAppSensitive(ctx, app) | 	apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ import ( | ||||||
| // processing subsection of the codebase. | // processing subsection of the codebase. | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	converter typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| 	federator federation.Federator | 	federator federation.Federator | ||||||
| 	filter    *visibility.Filter | 	filter    *visibility.Filter | ||||||
| } | } | ||||||
|  | @ -37,7 +37,7 @@ type Processor struct { | ||||||
| // New returns a new Processor instance. | // New returns a new Processor instance. | ||||||
| func New( | func New( | ||||||
| 	state *state.State, | 	state *state.State, | ||||||
| 	converter typeutils.TypeConverter, | 	converter *typeutils.Converter, | ||||||
| 	federator federation.Federator, | 	federator federation.Federator, | ||||||
| 	filter *visibility.Filter, | 	filter *visibility.Filter, | ||||||
| ) Processor { | ) Processor { | ||||||
|  |  | ||||||
|  | @ -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" | 				"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 { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
| 		} | 		} | ||||||
|  | @ -90,7 +90,7 @@ func (p *Processor) OutboxGet(ctx context.Context, requestedUsername string, pag | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -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)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting gtsmodel emoji with id %s to ap emoji: %s", requestedEmojiID, err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting gtsmodel emoji with id %s to ap emoji: %s", requestedEmojiID, err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -27,16 +27,16 @@ import ( | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	federator federation.Federator | 	federator federation.Federator | ||||||
| 	tc        typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| 	filter    *visibility.Filter | 	filter    *visibility.Filter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a new fedi processor. | // 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{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		federator: federator, | 		federator: federator, | ||||||
| 		tc:        tc, | 		converter: converter, | ||||||
| 		filter:    filter, | 		filter:    filter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -56,7 +56,7 @@ func (p *Processor) StatusGet(ctx context.Context, requestedUsername string, req | ||||||
| 		return nil, gtserror.NewErrorNotFound(err) | 		return nil, gtserror.NewErrorNotFound(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	asStatus, err := p.tc.StatusToAS(ctx, status) | 	asStatus, err := p.converter.StatusToAS(ctx, status) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  | @ -104,7 +104,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri | ||||||
| 	case !page: | 	case !page: | ||||||
| 		// scenario 1 | 		// scenario 1 | ||||||
| 		// get the collection | 		// get the collection | ||||||
| 		collection, err := p.tc.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) | 		collection, err := p.converter.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
| 		} | 		} | ||||||
|  | @ -116,7 +116,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri | ||||||
| 	case page && !onlyOtherAccountsSet: | 	case page && !onlyOtherAccountsSet: | ||||||
| 		// scenario 2 | 		// scenario 2 | ||||||
| 		// get the collection | 		// get the collection | ||||||
| 		collection, err := p.tc.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) | 		collection, err := p.converter.StatusToASRepliesCollection(ctx, status, onlyOtherAccounts) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
| 		} | 		} | ||||||
|  | @ -166,7 +166,7 @@ func (p *Processor) StatusRepliesGet(ctx context.Context, requestedUsername stri | ||||||
| 			replyURIs[r.ID] = rURI | 			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 { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque | ||||||
| 		// the bare minimum user profile needed for the pubkey. | 		// the bare minimum user profile needed for the pubkey. | ||||||
| 		// | 		// | ||||||
| 		// TODO: https://github.com/superseriousbusiness/gotosocial/issues/1186 | 		// 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 { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			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. | 	// Auth passed, generate the proper AP representation. | ||||||
| 	person, err := p.tc.AccountToAS(ctx, requestedAccount) | 	person, err := p.converter.AccountToAS(ctx, requestedAccount) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -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)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) | 		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)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) | 		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 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) { | 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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting instance to api representation: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -197,7 +197,7 @@ func (p *Processor) accountsFromListEntries( | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, listEntry.Follow.TargetAccount) | 		apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, listEntry.Follow.TargetAccount) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error converting to public api account: %v", err) | 			log.Errorf(ctx, "error converting to public api account: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -24,12 +24,12 @@ import ( | ||||||
| 
 | 
 | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	tc    typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func New(state *state.State, tc typeutils.TypeConverter) Processor { | func New(state *state.State, converter *typeutils.Converter) Processor { | ||||||
| 	return Processor{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		tc:    tc, | 		converter: converter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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 | // apiList is a shortcut to return the API version of the given | ||||||
| // list, or return an appropriate error if conversion fails. | // list, or return an appropriate error if conversion fails. | ||||||
| func (p *Processor) apiList(ctx context.Context, list *gtsmodel.List) (*apimodel.List, gtserror.WithCode) { | 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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting list to api: %w", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting list to api: %w", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, names [] | ||||||
| 		markers = append(markers, marker) | 		markers = append(markers, marker) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apiMarker, err := p.tc.MarkersToAPIMarker(ctx, markers) | 	apiMarker, err := p.converter.MarkersToAPIMarker(ctx, markers) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -24,12 +24,12 @@ import ( | ||||||
| 
 | 
 | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	tc    typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func New(state *state.State, tc typeutils.TypeConverter) Processor { | func New(state *state.State, converter *typeutils.Converter) Processor { | ||||||
| 	return Processor{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		tc:    tc, | 		converter: converter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) | 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting marker to api: %w", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -56,7 +56,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form | ||||||
| 		return nil, gtserror.NewErrorUnprocessableEntity(err) | 		return nil, gtserror.NewErrorUnprocessableEntity(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apiAttachment, err := p.tc.AttachmentToAPIAttachment(ctx, attachment) | 	apiAttachment, err := p.converter.AttachmentToAPIAttachment(ctx, attachment) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err := fmt.Errorf("error parsing media attachment to frontend type: %s", err) | 		err := fmt.Errorf("error parsing media attachment to frontend type: %s", err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ func (p *Processor) GetCustomEmojis(ctx context.Context) ([]*apimodel.Emoji, gts | ||||||
| 
 | 
 | ||||||
| 	apiEmojis := make([]*apimodel.Emoji, 0, len(emojis)) | 	apiEmojis := make([]*apimodel.Emoji, 0, len(emojis)) | ||||||
| 	for _, gtsEmoji := range emojis { | 	for _, gtsEmoji := range emojis { | ||||||
| 		apiEmoji, err := p.tc.EmojiToAPIEmoji(ctx, gtsEmoji) | 		apiEmoji, err := p.converter.EmojiToAPIEmoji(ctx, gtsEmoji) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error converting emoji with id %s: %s", gtsEmoji.ID, err) | 			log.Errorf(ctx, "error converting emoji with id %s: %s", gtsEmoji.ID, err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -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")) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -26,16 +26,16 @@ import ( | ||||||
| 
 | 
 | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state               *state.State | 	state               *state.State | ||||||
| 	tc                  typeutils.TypeConverter | 	converter           *typeutils.Converter | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a new media processor. | // 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{ | 	return Processor{ | ||||||
| 		state:               state, | 		state:               state, | ||||||
| 		tc:                  tc, | 		converter:           converter, | ||||||
| 		mediaManager:        mediaManager, | 		mediaManager:        mediaManager, | ||||||
| 		transportController: transportController, | 		transportController: transportController, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -34,7 +34,7 @@ type MediaStandardTestSuite struct { | ||||||
| 	// standard suite interfaces | 	// standard suite interfaces | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db                  db.DB | 	db                  db.DB | ||||||
| 	tc                  typeutils.TypeConverter | 	tc                  *typeutils.Converter | ||||||
| 	storage             *storage.Driver | 	storage             *storage.Driver | ||||||
| 	state               state.State | 	state               state.State | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
|  | @ -73,7 +73,7 @@ func (suite *MediaStandardTestSuite) SetupTest() { | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 	suite.tc = testrig.NewTestTypeConverter(suite.db) | 	suite.tc = typeutils.NewConverter(&suite.state) | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | 	suite.mediaManager = testrig.NewTestMediaManager(&suite.state) | ||||||
|  |  | ||||||
|  | @ -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)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -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)) | 		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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | 		return nil, gtserror.NewErrorNotFound(fmt.Errorf("error converting attachment: %s", err)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ import ( | ||||||
| // or sub processors will trigger asynchronous processing | // or sub processors will trigger asynchronous processing | ||||||
| // via the workers contained in state. | // via the workers contained in state. | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	tc          typeutils.TypeConverter | 	converter   *typeutils.Converter | ||||||
| 	oauthServer oauth.Server | 	oauthServer oauth.Server | ||||||
| 	state       *state.State | 	state       *state.State | ||||||
| 
 | 
 | ||||||
|  | @ -126,7 +126,7 @@ func (p *Processor) Workers() *workers.Processor { | ||||||
| 
 | 
 | ||||||
| // NewProcessor returns a new Processor. | // NewProcessor returns a new Processor. | ||||||
| func NewProcessor( | func NewProcessor( | ||||||
| 	tc typeutils.TypeConverter, | 	converter *typeutils.Converter, | ||||||
| 	federator federation.Federator, | 	federator federation.Federator, | ||||||
| 	oauthServer oauth.Server, | 	oauthServer oauth.Server, | ||||||
| 	mediaManager *mm.Manager, | 	mediaManager *mm.Manager, | ||||||
|  | @ -139,7 +139,7 @@ func NewProcessor( | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	processor := &Processor{ | 	processor := &Processor{ | ||||||
| 		tc:          tc, | 		converter:   converter, | ||||||
| 		oauthServer: oauthServer, | 		oauthServer: oauthServer, | ||||||
| 		state:       state, | 		state:       state, | ||||||
| 	} | 	} | ||||||
|  | @ -148,23 +148,23 @@ func NewProcessor( | ||||||
| 	// | 	// | ||||||
| 	// Start with sub processors that will | 	// Start with sub processors that will | ||||||
| 	// be required by the workers processor. | 	// be required by the workers processor. | ||||||
| 	commonProcessor := common.New(state, tc, federator, filter) | 	commonProcessor := common.New(state, converter, federator, filter) | ||||||
| 	accountProcessor := account.New(&commonProcessor, state, tc, mediaManager, oauthServer, federator, filter, parseMentionFunc) | 	accountProcessor := account.New(&commonProcessor, state, converter, mediaManager, oauthServer, federator, filter, parseMentionFunc) | ||||||
| 	mediaProcessor := media.New(state, tc, mediaManager, federator.TransportController()) | 	mediaProcessor := media.New(state, converter, mediaManager, federator.TransportController()) | ||||||
| 	streamProcessor := stream.New(state, oauthServer) | 	streamProcessor := stream.New(state, oauthServer) | ||||||
| 
 | 
 | ||||||
| 	// Instantiate the rest of the sub | 	// Instantiate the rest of the sub | ||||||
| 	// processors + pin them to this struct. | 	// processors + pin them to this struct. | ||||||
| 	processor.account = accountProcessor | 	processor.account = accountProcessor | ||||||
| 	processor.admin = admin.New(state, tc, mediaManager, federator.TransportController(), emailSender) | 	processor.admin = admin.New(state, converter, mediaManager, federator.TransportController(), emailSender) | ||||||
| 	processor.fedi = fedi.New(state, tc, federator, filter) | 	processor.fedi = fedi.New(state, converter, federator, filter) | ||||||
| 	processor.list = list.New(state, tc) | 	processor.list = list.New(state, converter) | ||||||
| 	processor.markers = markers.New(state, tc) | 	processor.markers = markers.New(state, converter) | ||||||
| 	processor.media = mediaProcessor | 	processor.media = mediaProcessor | ||||||
| 	processor.report = report.New(state, tc) | 	processor.report = report.New(state, converter) | ||||||
| 	processor.timeline = timeline.New(state, tc, filter) | 	processor.timeline = timeline.New(state, converter, filter) | ||||||
| 	processor.search = search.New(state, federator, tc, filter) | 	processor.search = search.New(state, federator, converter, filter) | ||||||
| 	processor.status = status.New(state, federator, tc, filter, parseMentionFunc) | 	processor.status = status.New(state, federator, converter, filter, parseMentionFunc) | ||||||
| 	processor.stream = streamProcessor | 	processor.stream = streamProcessor | ||||||
| 	processor.user = user.New(state, emailSender) | 	processor.user = user.New(state, emailSender) | ||||||
| 
 | 
 | ||||||
|  | @ -174,7 +174,7 @@ func NewProcessor( | ||||||
| 	processor.workers = workers.New( | 	processor.workers = workers.New( | ||||||
| 		state, | 		state, | ||||||
| 		federator, | 		federator, | ||||||
| 		tc, | 		converter, | ||||||
| 		filter, | 		filter, | ||||||
| 		emailSender, | 		emailSender, | ||||||
| 		&accountProcessor, | 		&accountProcessor, | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ type ProcessingStandardTestSuite struct { | ||||||
| 	storage             *storage.Driver | 	storage             *storage.Driver | ||||||
| 	state               state.State | 	state               state.State | ||||||
| 	mediaManager        *media.Manager | 	mediaManager        *media.Manager | ||||||
| 	typeconverter       typeutils.TypeConverter | 	typeconverter       *typeutils.Converter | ||||||
| 	httpClient          *testrig.MockHTTPClient | 	httpClient          *testrig.MockHTTPClient | ||||||
| 	transportController transport.Controller | 	transportController transport.Controller | ||||||
| 	federator           federation.Federator | 	federator           federation.Federator | ||||||
|  | @ -104,7 +104,7 @@ func (suite *ProcessingStandardTestSuite) SetupTest() { | ||||||
| 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | 	suite.testActivities = testrig.NewTestActivities(suite.testAccounts) | ||||||
| 	suite.storage = testrig.NewInMemoryStorage() | 	suite.storage = testrig.NewInMemoryStorage() | ||||||
| 	suite.state.Storage = suite.storage | 	suite.state.Storage = suite.storage | ||||||
| 	suite.typeconverter = testrig.NewTestTypeConverter(suite.db) | 	suite.typeconverter = typeutils.NewConverter(&suite.state) | ||||||
| 
 | 
 | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
|  |  | ||||||
|  | @ -99,7 +99,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form | ||||||
| 		TargetAccount:  targetAccount, | 		TargetAccount:  targetAccount, | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	apiReport, err := p.tc.ReportToAPIReport(ctx, report) | 	apiReport, err := p.converter.ReportToAPIReport(ctx, report) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("error converting report to frontend representation: %w", err) | 		err = fmt.Errorf("error converting report to frontend representation: %w", err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ func (p *Processor) Get(ctx context.Context, account *gtsmodel.Account, id strin | ||||||
| 		return nil, gtserror.NewErrorNotFound(err) | 		return nil, gtserror.NewErrorNotFound(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apiReport, err := p.tc.ReportToAPIReport(ctx, report) | 	apiReport, err := p.converter.ReportToAPIReport(ctx, report) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) | 		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 | 	prevMinIDValue := reports[0].ID | ||||||
| 
 | 
 | ||||||
| 	for _, r := range reports { | 	for _, r := range reports { | ||||||
| 		item, err := p.tc.ReportToAPIReport(ctx, r) | 		item, err := p.converter.ReportToAPIReport(ctx, r) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) | 			return nil, gtserror.NewErrorInternalError(fmt.Errorf("error converting report to api: %s", err)) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -24,12 +24,12 @@ import ( | ||||||
| 
 | 
 | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	tc    typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func New(state *state.State, tc typeutils.TypeConverter) Processor { | func New(state *state.State, converter *typeutils.Converter) Processor { | ||||||
| 	return Processor{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		tc:    tc, | 		converter: converter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -27,16 +27,16 @@ import ( | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	federator federation.Federator | 	federator federation.Federator | ||||||
| 	tc        typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| 	filter    *visibility.Filter | 	filter    *visibility.Filter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a new status processor. | // 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{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		federator: federator, | 		federator: federator, | ||||||
| 		tc:        tc, | 		converter: converter, | ||||||
| 		filter:    filter, | 		filter:    filter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -70,7 +70,7 @@ func (p *Processor) packageAccounts( | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, account) | 		apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Debugf(ctx, "skipping account %s because it couldn't be converted to its api representation: %s", account.ID, err) | 			log.Debugf(ctx, "skipping account %s because it couldn't be converted to its api representation: %s", account.ID, err) | ||||||
| 			continue | 			continue | ||||||
|  | @ -105,7 +105,7 @@ func (p *Processor) packageStatuses( | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiStatus, err := p.tc.StatusToAPIStatus(ctx, status, requestingAccount) | 		apiStatus, err := p.converter.StatusToAPIStatus(ctx, status, requestingAccount) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Debugf(ctx, "skipping status %s because it couldn't be converted to its api representation: %s", status.ID, err) | 			log.Debugf(ctx, "skipping status %s because it couldn't be converted to its api representation: %s", status.ID, err) | ||||||
| 			continue | 			continue | ||||||
|  | @ -137,7 +137,7 @@ func (p *Processor) packageHashtags( | ||||||
| 	} else { | 	} else { | ||||||
| 		// If API not version 1, provide slice of full tags. | 		// If API not version 1, provide slice of full tags. | ||||||
| 		rangeF = func(tag *gtsmodel.Tag) { | 		rangeF = func(tag *gtsmodel.Tag) { | ||||||
| 			apiTag, err := p.tc.TagToAPITag(ctx, tag, true) | 			apiTag, err := p.converter.TagToAPITag(ctx, tag, true) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				log.Debugf( | 				log.Debugf( | ||||||
| 					ctx, | 					ctx, | ||||||
|  |  | ||||||
|  | @ -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 | 	// 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 { | 	if err != nil { | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
| 	} | 	} | ||||||
|  | @ -199,7 +199,7 @@ func (p *Processor) StatusBoostedBy(ctx context.Context, requestingAccount *gtsm | ||||||
| 			return nil, gtserror.NewErrorNotFound(wrapped) | 			return nil, gtserror.NewErrorNotFound(wrapped) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, account) | 		apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			err = fmt.Errorf("BoostedBy: error converting account to api model: %s", err) | 			err = fmt.Errorf("BoostedBy: error converting account to api model: %s", err) | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func (p *Processor) apiStatus(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (*apimodel.Status, gtserror.WithCode) { | 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 { | 	if err != nil { | ||||||
| 		err = gtserror.Newf("error converting status %s to frontend representation: %w", targetStatus.ID, err) | 		err = gtserror.Newf("error converting status %s to frontend representation: %w", targetStatus.ID, err) | ||||||
| 		return nil, gtserror.NewErrorInternalError(err) | 		return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -135,7 +135,7 @@ func (p *Processor) FavedBy(ctx context.Context, requestingAccount *gtsmodel.Acc | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiAccount, err := p.tc.AccountToAPIAccountPublic(ctx, fave.Account) | 		apiAccount, err := p.converter.AccountToAPIAccountPublic(ctx, fave.Account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			err = fmt.Errorf("FavedBy: error converting account %s to frontend representation: %w", fave.AccountID, err) | 			err = fmt.Errorf("FavedBy: error converting account %s to frontend representation: %w", fave.AccountID, err) | ||||||
| 			return nil, gtserror.NewErrorInternalError(err) | 			return nil, gtserror.NewErrorInternalError(err) | ||||||
|  |  | ||||||
|  | @ -55,7 +55,7 @@ func (p *Processor) ContextGet(ctx context.Context, requestingAccount *gtsmodel. | ||||||
| 
 | 
 | ||||||
| 	for _, status := range parents { | 	for _, status := range parents { | ||||||
| 		if v, err := p.filter.StatusVisible(ctx, requestingAccount, status); err == nil && v { | 		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 { | 			if err == nil { | ||||||
| 				context.Ancestors = append(context.Ancestors, *apiStatus) | 				context.Ancestors = append(context.Ancestors, *apiStatus) | ||||||
| 			} | 			} | ||||||
|  | @ -73,7 +73,7 @@ func (p *Processor) ContextGet(ctx context.Context, requestingAccount *gtsmodel. | ||||||
| 
 | 
 | ||||||
| 	for _, status := range children { | 	for _, status := range children { | ||||||
| 		if v, err := p.filter.StatusVisible(ctx, requestingAccount, status); err == nil && v { | 		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 { | 			if err == nil { | ||||||
| 				context.Descendants = append(context.Descendants, *apiStatus) | 				context.Descendants = append(context.Descendants, *apiStatus) | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -29,18 +29,18 @@ import ( | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state        *state.State | 	state        *state.State | ||||||
| 	federator    federation.Federator | 	federator    federation.Federator | ||||||
| 	tc           typeutils.TypeConverter | 	converter    *typeutils.Converter | ||||||
| 	filter       *visibility.Filter | 	filter       *visibility.Filter | ||||||
| 	formatter    text.Formatter | 	formatter    text.Formatter | ||||||
| 	parseMention gtsmodel.ParseMentionFunc | 	parseMention gtsmodel.ParseMentionFunc | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns a new status processor. | // 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{ | 	return Processor{ | ||||||
| 		state:        state, | 		state:        state, | ||||||
| 		federator:    federator, | 		federator:    federator, | ||||||
| 		tc:           tc, | 		converter:    converter, | ||||||
| 		filter:       filter, | 		filter:       filter, | ||||||
| 		formatter:    text.NewFormatter(state.DB), | 		formatter:    text.NewFormatter(state.DB), | ||||||
| 		parseMention: parseMention, | 		parseMention: parseMention, | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ import ( | ||||||
| type StatusStandardTestSuite struct { | type StatusStandardTestSuite struct { | ||||||
| 	suite.Suite | 	suite.Suite | ||||||
| 	db            db.DB | 	db            db.DB | ||||||
| 	typeConverter typeutils.TypeConverter | 	typeConverter *typeutils.Converter | ||||||
| 	tc            transport.Controller | 	tc            transport.Controller | ||||||
| 	storage       *storage.Driver | 	storage       *storage.Driver | ||||||
| 	state         state.State | 	state         state.State | ||||||
|  | @ -78,7 +78,7 @@ func (suite *StatusStandardTestSuite) SetupTest() { | ||||||
| 	testrig.InitTestLog() | 	testrig.InitTestLog() | ||||||
| 
 | 
 | ||||||
| 	suite.db = testrig.NewTestDB(&suite.state) | 	suite.db = testrig.NewTestDB(&suite.state) | ||||||
| 	suite.typeConverter = testrig.NewTestTypeConverter(suite.db) | 	suite.typeConverter = typeutils.NewConverter(&suite.state) | ||||||
| 	suite.state.DB = suite.db | 	suite.state.DB = suite.db | ||||||
| 
 | 
 | ||||||
| 	suite.tc = testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")) | 	suite.tc = testrig.NewTestTransportController(&suite.state, testrig.NewMockHTTPClient(nil, "../../../testrig/media")) | ||||||
|  | @ -91,7 +91,7 @@ func (suite *StatusStandardTestSuite) SetupTest() { | ||||||
| 	testrig.StartTimelines( | 	testrig.StartTimelines( | ||||||
| 		&suite.state, | 		&suite.state, | ||||||
| 		filter, | 		filter, | ||||||
| 		testrig.NewTestTypeConverter(suite.db), | 		suite.typeConverter, | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	suite.status = status.New(&suite.state, suite.federator, suite.typeConverter, filter, processing.GetParseMentionFunc(suite.db, suite.federator)) | 	suite.status = status.New(&suite.state, suite.federator, suite.typeConverter, filter, processing.GetParseMentionFunc(suite.db, suite.federator)) | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/suite" | 	"github.com/stretchr/testify/suite" | ||||||
| 	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" | 	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" | ||||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type NotificationTestSuite struct { | type NotificationTestSuite struct { | ||||||
|  | @ -39,7 +39,7 @@ func (suite *NotificationTestSuite) TestStreamNotification() { | ||||||
| 	suite.NoError(errWithCode) | 	suite.NoError(errWithCode) | ||||||
| 
 | 
 | ||||||
| 	followAccount := suite.testAccounts["remote_account_1"] | 	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) | 	suite.NoError(err) | ||||||
| 
 | 
 | ||||||
| 	notification := &apimodel.Notification{ | 	notification := &apimodel.Notification{ | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ func (p *Processor) FavedTimelineGet(ctx context.Context, authed *oauth.Auth, ma | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, authed.Account) | 		apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, authed.Account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error convering to api status: %v", err) | 			log.Errorf(ctx, "error convering to api status: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -84,7 +84,7 @@ func HomeTimelineFilter(state *state.State, filter *visibility.Filter) timeline. | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // HomeTimelineStatusPrepare returns a function that satisfies PrepareFunction for home timelines. | // 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) { | 	return func(ctx context.Context, accountID string, itemID string) (timeline.Preparable, error) { | ||||||
| 		status, err := state.DB.GetStatusByID(ctx, itemID) | 		status, err := state.DB.GetStatusByID(ctx, itemID) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | @ -98,7 +98,7 @@ func HomeTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) t | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return tc.StatusToAPIStatus(ctx, status, requestingAccount) | 		return converter.StatusToAPIStatus(ctx, status, requestingAccount) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -90,7 +90,7 @@ func ListTimelineFilter(state *state.State, filter *visibility.Filter) timeline. | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ListTimelineStatusPrepare returns a function that satisfies PrepareFunction for list timelines. | // 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) { | 	return func(ctx context.Context, listID string, itemID string) (timeline.Preparable, error) { | ||||||
| 		status, err := state.DB.GetStatusByID(ctx, itemID) | 		status, err := state.DB.GetStatusByID(ctx, itemID) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | @ -110,7 +110,7 @@ func ListTimelineStatusPrepare(state *state.State, tc typeutils.TypeConverter) t | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return tc.StatusToAPIStatus(ctx, status, requestingAccount) | 		return converter.StatusToAPIStatus(ctx, status, requestingAccount) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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 { | 		if err != nil { | ||||||
| 			log.Debugf(ctx, "skipping notification %s because it couldn't be converted to its api representation: %s", n.ID, err) | 			log.Debugf(ctx, "skipping notification %s because it couldn't be converted to its api representation: %s", n.ID, err) | ||||||
| 			continue | 			continue | ||||||
|  | @ -121,7 +121,7 @@ func (p *Processor) NotificationGet(ctx context.Context, account *gtsmodel.Accou | ||||||
| 		return nil, gtserror.NewErrorNotFound(err) | 		return nil, gtserror.NewErrorNotFound(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	apiNotif, err := p.tc.NotificationToAPINotification(ctx, notif) | 	apiNotif, err := p.converter.NotificationToAPINotification(ctx, notif) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if errors.Is(err, db.ErrNoEntries) { | 		if errors.Is(err, db.ErrNoEntries) { | ||||||
| 			return nil, gtserror.NewErrorNotFound(err) | 			return nil, gtserror.NewErrorNotFound(err) | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ func (p *Processor) PublicTimelineGet(ctx context.Context, authed *oauth.Auth, m | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, authed.Account) | 		apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, authed.Account) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error convert to api status: %v", err) | 			log.Errorf(ctx, "error convert to api status: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ func (p *Processor) packageTagResponse( | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		apiStatus, err := p.tc.StatusToAPIStatus(ctx, s, requestingAcct) | 		apiStatus, err := p.converter.StatusToAPIStatus(ctx, s, requestingAcct) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf(ctx, "error converting to api status: %v", err) | 			log.Errorf(ctx, "error converting to api status: %v", err) | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
|  | @ -25,14 +25,14 @@ import ( | ||||||
| 
 | 
 | ||||||
| type Processor struct { | type Processor struct { | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	tc     typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| 	filter    *visibility.Filter | 	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{ | 	return Processor{ | ||||||
| 		state:     state, | 		state:     state, | ||||||
| 		tc:     tc, | 		converter: converter, | ||||||
| 		filter:    filter, | 		filter:    filter, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -38,7 +38,7 @@ type federate struct { | ||||||
| 	// to send and retrieve functions. | 	// to send and retrieve functions. | ||||||
| 	federation.Federator | 	federation.Federator | ||||||
| 	state     *state.State | 	state     *state.State | ||||||
| 	tc    typeutils.TypeConverter | 	converter *typeutils.Converter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // parseURI is a cheeky little | // 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 | 	// Convert status to an ActivityStreams | ||||||
| 	// Note, wrapped in a Create activity. | 	// Note, wrapped in a Create activity. | ||||||
| 	asStatus, err := f.tc.StatusToAS(ctx, status) | 	asStatus, err := f.converter.StatusToAS(ctx, status) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting status to AS: %w", err) | 		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 { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error wrapping status in create: %w", err) | 		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. | 	// 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 { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error creating Delete: %w", err) | 		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. | 	// Convert follow to ActivityStreams Follow. | ||||||
| 	asFollow, err := f.tc.FollowToAS(ctx, follow) | 	asFollow, err := f.converter.FollowToAS(ctx, follow) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting follow to AS: %s", err) | 		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. | 	// Recreate the ActivityStreams Follow. | ||||||
| 	asFollow, err := f.tc.FollowToAS(ctx, follow) | 	asFollow, err := f.converter.FollowToAS(ctx, follow) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting follow to AS: %w", err) | 		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. | 	// Recreate the ActivityStreams Like. | ||||||
| 	like, err := f.tc.FaveToAS(ctx, fave) | 	like, err := f.converter.FaveToAS(ctx, fave) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting fave to AS: %w", err) | 		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. | 	// Recreate the ActivityStreams Announce. | ||||||
| 	asAnnounce, err := f.tc.BoostToAS( | 	asAnnounce, err := f.converter.BoostToAS( | ||||||
| 		ctx, | 		ctx, | ||||||
| 		boost, | 		boost, | ||||||
| 		boost.Account, | 		boost.Account, | ||||||
|  | @ -493,7 +493,7 @@ func (f *federate) AcceptFollow(ctx context.Context, follow *gtsmodel.Follow) er | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Recreate the ActivityStreams Follow. | 	// Recreate the ActivityStreams Follow. | ||||||
| 	asFollow, err := f.tc.FollowToAS(ctx, follow) | 	asFollow, err := f.converter.FollowToAS(ctx, follow) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting follow to AS: %w", err) | 		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. | 	// Recreate the ActivityStreams Follow. | ||||||
| 	asFollow, err := f.tc.FollowToAS(ctx, follow) | 	asFollow, err := f.converter.FollowToAS(ctx, follow) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting follow to AS: %w", err) | 		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. | 	// Create the ActivityStreams Like. | ||||||
| 	like, err := f.tc.FaveToAS(ctx, fave) | 	like, err := f.converter.FaveToAS(ctx, fave) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting fave to AS Like: %w", err) | 		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. | 	// Create the ActivityStreams Announce. | ||||||
| 	announce, err := f.tc.BoostToAS( | 	announce, err := f.converter.BoostToAS( | ||||||
| 		ctx, | 		ctx, | ||||||
| 		boost, | 		boost, | ||||||
| 		boost.Account, | 		boost.Account, | ||||||
|  | @ -704,13 +704,13 @@ func (f *federate) UpdateAccount(ctx context.Context, account *gtsmodel.Account) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Convert account to ActivityStreams Person. | 	// Convert account to ActivityStreams Person. | ||||||
| 	person, err := f.tc.AccountToAS(ctx, account) | 	person, err := f.converter.AccountToAS(ctx, account) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting account to Person: %w", err) | 		return gtserror.Newf("error converting account to Person: %w", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Use ActivityStreams Person as Object of Update. | 	// Use ActivityStreams Person as Object of Update. | ||||||
| 	update, err := f.tc.WrapPersonInUpdate(person, account) | 	update, err := f.converter.WrapPersonInUpdate(person, account) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error wrapping Person in Update: %w", err) | 		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. | 	// Convert block to ActivityStreams Block. | ||||||
| 	asBlock, err := f.tc.BlockToAS(ctx, block) | 	asBlock, err := f.converter.BlockToAS(ctx, block) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting block to AS: %w", err) | 		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. | 	// Convert block to ActivityStreams Block. | ||||||
| 	asBlock, err := f.tc.BlockToAS(ctx, block) | 	asBlock, err := f.converter.BlockToAS(ctx, block) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting block to AS: %w", err) | 		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. | 	// Convert report to ActivityStreams Flag. | ||||||
| 	flag, err := f.tc.ReportToASFlag(ctx, report) | 	flag, err := f.converter.ReportToASFlag(ctx, report) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting report to AS: %w", err) | 		return gtserror.Newf("error converting report to AS: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ import ( | ||||||
| // from the client/REST API. | // from the client/REST API. | ||||||
| type clientAPI struct { | type clientAPI struct { | ||||||
| 	state      *state.State | 	state      *state.State | ||||||
| 	tc         typeutils.TypeConverter | 	converter  *typeutils.Converter | ||||||
| 	surface    *surface | 	surface    *surface | ||||||
| 	federate   *federate | 	federate   *federate | ||||||
| 	wipeStatus wipeStatus | 	wipeStatus wipeStatus | ||||||
|  | @ -242,7 +242,7 @@ func (p *clientAPI) CreateFollowReq(ctx context.Context, cMsg messages.FromClien | ||||||
| 
 | 
 | ||||||
| 	if err := p.federate.Follow( | 	if err := p.federate.Follow( | ||||||
| 		ctx, | 		ctx, | ||||||
| 		p.tc.FollowRequestToFollow(ctx, followRequest), | 		p.converter.FollowRequestToFollow(ctx, followRequest), | ||||||
| 	); err != nil { | 	); err != nil { | ||||||
| 		return gtserror.Newf("error federating follow: %w", err) | 		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( | 	if err := p.federate.RejectFollow( | ||||||
| 		ctx, | 		ctx, | ||||||
| 		p.tc.FollowRequestToFollow(ctx, followReq), | 		p.converter.FollowRequestToFollow(ctx, followReq), | ||||||
| 	); err != nil { | 	); err != nil { | ||||||
| 		return gtserror.Newf("error federating reject follow: %w", err) | 		return gtserror.Newf("error federating reject follow: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ import ( | ||||||
| //   - sending an email | //   - sending an email | ||||||
| type surface struct { | type surface struct { | ||||||
| 	state       *state.State | 	state       *state.State | ||||||
| 	tc          typeutils.TypeConverter | 	converter   *typeutils.Converter | ||||||
| 	stream      *stream.Processor | 	stream      *stream.Processor | ||||||
| 	filter      *visibility.Filter | 	filter      *visibility.Filter | ||||||
| 	emailSender email.Sender | 	emailSender email.Sender | ||||||
|  |  | ||||||
|  | @ -34,7 +34,7 @@ func (s *surface) notifyMentions( | ||||||
| 	ctx context.Context, | 	ctx context.Context, | ||||||
| 	mentions []*gtsmodel.Mention, | 	mentions []*gtsmodel.Mention, | ||||||
| ) error { | ) error { | ||||||
| 	var errs = gtserror.NewMultiError(len(mentions)) | 	errs := gtserror.NewMultiError(len(mentions)) | ||||||
| 
 | 
 | ||||||
| 	for _, mention := range mentions { | 	for _, mention := range mentions { | ||||||
| 		if err := s.notify( | 		if err := s.notify( | ||||||
|  | @ -208,7 +208,7 @@ func (s *surface) notify( | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Stream notification to the user. | 	// Stream notification to the user. | ||||||
| 	apiNotif, err := s.tc.NotificationToAPINotification(ctx, notif) | 	apiNotif, err := s.converter.NotificationToAPINotification(ctx, notif) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return gtserror.Newf("error converting notification to api representation: %w", err) | 		return gtserror.Newf("error converting notification to api representation: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -286,7 +286,6 @@ func (s *surface) listEligible( | ||||||
| 			list.ID, | 			list.ID, | ||||||
| 			status.InReplyToAccountID, | 			status.InReplyToAccountID, | ||||||
| 		) | 		) | ||||||
| 
 |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			err := gtserror.Newf( | 			err := gtserror.Newf( | ||||||
| 				"db error checking if account %s in list %s: %w", | 				"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. | 	// 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 { | 	if err != nil { | ||||||
| 		err = gtserror.Newf("error converting status %s to frontend representation: %w", status.ID, err) | 		err = gtserror.Newf("error converting status %s to frontend representation: %w", status.ID, err) | ||||||
| 		return true, err | 		return true, err | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue