webpush.Sender: take type converter as ctor param

This commit is contained in:
Vyr Cossont 2025-01-23 10:00:55 -08:00
commit d89f3ec8f1
4 changed files with 9 additions and 6 deletions

View file

@ -254,7 +254,7 @@ var Start action.GTSAction = func(ctx context.Context) error {
}
// Create a Web Push notification sender.
webPushSender := webpush.NewSender(client, state)
webPushSender := webpush.NewSender(client, state, typeConverter)
// Initialize both home / list timelines.
state.Timelines.Home = timeline.NewManager(

View file

@ -44,16 +44,16 @@ import (
type realSender struct {
httpClient *http.Client
state *state.State
tc *typeutils.Converter
converter *typeutils.Converter
}
// NewRealSender creates a Sender from an http.Client instead of an httpclient.Client.
// This should only be used by NewSender and in tests.
func NewRealSender(httpClient *http.Client, state *state.State) Sender {
func NewRealSender(httpClient *http.Client, state *state.State, converter *typeutils.Converter) Sender {
return &realSender{
httpClient: httpClient,
state: state,
tc: typeutils.NewConverter(state),
converter: converter,
}
}
@ -110,7 +110,7 @@ func (r *realSender) Send(
}
// Get API representations of notification and accounts involved.
apiNotification, err := r.tc.NotificationToAPINotification(ctx, notification, filters, mutes)
apiNotification, err := r.converter.NotificationToAPINotification(ctx, notification, filters, mutes)
if err != nil {
return gtserror.Newf("error converting notification %s to API representation: %w", notification.ID, err)
}

View file

@ -125,6 +125,7 @@ func (suite *RealSenderStandardTestSuite) SetupTest() {
Transport: suite,
},
&suite.state,
suite.typeconverter,
)
suite.processor = processing.NewProcessor(

View file

@ -25,6 +25,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/httpclient"
"github.com/superseriousbusiness/gotosocial/internal/state"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
)
// Sender can send Web Push notifications.
@ -39,7 +40,7 @@ type Sender interface {
}
// NewSender creates a new sender from an HTTP client, DB, and worker pool.
func NewSender(httpClient *httpclient.Client, state *state.State) Sender {
func NewSender(httpClient *httpclient.Client, state *state.State, converter *typeutils.Converter) Sender {
return NewRealSender(
&http.Client{
Transport: &gtsHTTPClientRoundTripper{
@ -48,5 +49,6 @@ func NewSender(httpClient *httpclient.Client, state *state.State) Sender {
// Other fields are already set on the http.Client inside the httpclient.Client.
},
state,
converter,
)
}