summaryrefslogtreecommitdiff
path: root/internal/webpush/sender.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2025-01-27 15:54:59 +0000
committerLibravatar GitHub <noreply@github.com>2025-01-27 15:54:59 +0000
commit726d2ba483b58402fa5e8d5a99d5cbd290bdeb67 (patch)
treeec597aa14d4c5cd8f36661750ff71a3ffbc2eb2d /internal/webpush/sender.go
parentbumps uptrace/bun deps to v1.2.8 (#3698) (diff)
downloadgotosocial-726d2ba483b58402fa5e8d5a99d5cbd290bdeb67.tar.xz
[chore] some tidy ups (#3677)
* small formatting changes (no logic) * improve code comments * fix import cycle * shutup stinky linter
Diffstat (limited to 'internal/webpush/sender.go')
-rw-r--r--internal/webpush/sender.go34
1 files changed, 24 insertions, 10 deletions
diff --git a/internal/webpush/sender.go b/internal/webpush/sender.go
index 5331f049a..060118019 100644
--- a/internal/webpush/sender.go
+++ b/internal/webpush/sender.go
@@ -30,7 +30,9 @@ import (
// Sender can send Web Push notifications.
type Sender interface {
- // Send queues up a notification for delivery to all of an account's Web Push subscriptions.
+
+ // Send queues up a notification for delivery to
+ // all of an account's Web Push subscriptions.
Send(
ctx context.Context,
notification *gtsmodel.Notification,
@@ -41,14 +43,26 @@ type Sender interface {
// NewSender creates a new sender from an HTTP client, DB, and worker pool.
func NewSender(httpClient *httpclient.Client, state *state.State, converter *typeutils.Converter) Sender {
- return NewRealSender(
- &http.Client{
- Transport: &gtsHTTPClientRoundTripper{
- httpClient: httpClient,
- },
- // Other fields are already set on the http.Client inside the httpclient.Client.
+ return &realSender{
+ httpClient: &http.Client{
+ // Pass in our wrapped httpclient.Client{}
+ // type as http.Transport{} in order to take
+ // advantage of retries, SSF protection etc.
+ Transport: httpClient,
+
+ // Other http.Client{} fields are already
+ // set in embedded httpclient.Client{}.
},
- state,
- converter,
- )
+ state: state,
+ converter: converter,
+ }
+}
+
+// an internal function purely existing for the webpush test package to link to and use a custom http.Client{}.
+func newSenderWith(client *http.Client, state *state.State, converter *typeutils.Converter) Sender { //nolint:unused
+ return &realSender{
+ httpClient: client,
+ state: state,
+ converter: converter,
+ }
}