mirror of
https://github.com/binwiederhier/ntfy.git
synced 2026-03-18 21:30:44 +01:00
Manual changes
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
|||||||
"net/netip"
|
"net/netip"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"heckel.io/ntfy/v2/log"
|
|
||||||
"heckel.io/ntfy/v2/util"
|
"heckel.io/ntfy/v2/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -16,6 +15,7 @@ const (
|
|||||||
subscriptionEndpointLimitPerSubscriberIP = 10
|
subscriptionEndpointLimitPerSubscriberIP = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Errors returned by the store
|
||||||
var (
|
var (
|
||||||
ErrWebPushTooManySubscriptions = errors.New("too many subscriptions")
|
ErrWebPushTooManySubscriptions = errors.New("too many subscriptions")
|
||||||
ErrWebPushUserIDCannotBeEmpty = errors.New("user ID cannot be empty")
|
ErrWebPushUserIDCannotBeEmpty = errors.New("user ID cannot be empty")
|
||||||
@@ -57,42 +57,6 @@ type commonStore struct {
|
|||||||
queries storeQueries
|
queries storeQueries
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subscription represents a web push subscription.
|
|
||||||
type Subscription struct {
|
|
||||||
ID string
|
|
||||||
Endpoint string
|
|
||||||
Auth string
|
|
||||||
P256dh string
|
|
||||||
UserID string
|
|
||||||
}
|
|
||||||
|
|
||||||
// Context returns the logging context for the subscription.
|
|
||||||
func (w *Subscription) Context() log.Context {
|
|
||||||
return map[string]any{
|
|
||||||
"web_push_subscription_id": w.ID,
|
|
||||||
"web_push_subscription_user_id": w.UserID,
|
|
||||||
"web_push_subscription_endpoint": w.Endpoint,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func subscriptionsFromRows(rows *sql.Rows) ([]*Subscription, error) {
|
|
||||||
subscriptions := make([]*Subscription, 0)
|
|
||||||
for rows.Next() {
|
|
||||||
var id, endpoint, auth, p256dh, userID string
|
|
||||||
if err := rows.Scan(&id, &endpoint, &auth, &p256dh, &userID); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
subscriptions = append(subscriptions, &Subscription{
|
|
||||||
ID: id,
|
|
||||||
Endpoint: endpoint,
|
|
||||||
Auth: auth,
|
|
||||||
P256dh: p256dh,
|
|
||||||
UserID: userID,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return subscriptions, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpsertSubscription adds or updates Web Push subscriptions for the given topics and user ID.
|
// UpsertSubscription adds or updates Web Push subscriptions for the given topics and user ID.
|
||||||
func (s *commonStore) UpsertSubscription(endpoint string, auth, p256dh, userID string, subscriberIP netip.Addr, topics []string) error {
|
func (s *commonStore) UpsertSubscription(endpoint string, auth, p256dh, userID string, subscriberIP netip.Addr, topics []string) error {
|
||||||
tx, err := s.db.Begin()
|
tx, err := s.db.Begin()
|
||||||
@@ -204,3 +168,21 @@ func (s *commonStore) SetSubscriptionUpdatedAt(endpoint string, updatedAt int64)
|
|||||||
func (s *commonStore) Close() error {
|
func (s *commonStore) Close() error {
|
||||||
return s.db.Close()
|
return s.db.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func subscriptionsFromRows(rows *sql.Rows) ([]*Subscription, error) {
|
||||||
|
subscriptions := make([]*Subscription, 0)
|
||||||
|
for rows.Next() {
|
||||||
|
var id, endpoint, auth, p256dh, userID string
|
||||||
|
if err := rows.Scan(&id, &endpoint, &auth, &p256dh, &userID); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
subscriptions = append(subscriptions, &Subscription{
|
||||||
|
ID: id,
|
||||||
|
Endpoint: endpoint,
|
||||||
|
Auth: auth,
|
||||||
|
P256dh: p256dh,
|
||||||
|
UserID: userID,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return subscriptions, nil
|
||||||
|
}
|
||||||
|
|||||||
21
webpush/types.go
Normal file
21
webpush/types.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package webpush
|
||||||
|
|
||||||
|
import "heckel.io/ntfy/v2/log"
|
||||||
|
|
||||||
|
// Subscription represents a web push subscription.
|
||||||
|
type Subscription struct {
|
||||||
|
ID string
|
||||||
|
Endpoint string
|
||||||
|
Auth string
|
||||||
|
P256dh string
|
||||||
|
UserID string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Context returns the logging context for the subscription.
|
||||||
|
func (w *Subscription) Context() log.Context {
|
||||||
|
return map[string]any{
|
||||||
|
"web_push_subscription_id": w.ID,
|
||||||
|
"web_push_subscription_user_id": w.UserID,
|
||||||
|
"web_push_subscription_endpoint": w.Endpoint,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user