models

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeleteSubscriptionByEndpoint

func DeleteSubscriptionByEndpoint(ctx context.Context, db bun.IDB, endpoint string) (err error)

func DeleteSubscriptionByHash

func DeleteSubscriptionByHash(ctx context.Context, db bun.IDB, hash string) (err error)

func DeleteSubscriptionsByClientId

func DeleteSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (err error)

func DeleteSubscriptionsByClientIdAndRecipientId

func DeleteSubscriptionsByClientIdAndRecipientId(ctx context.Context, db bun.IDB, clientId, recipientId string) (err error)

func HasExistingSubscriptionsByClientId

func HasExistingSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (exists bool, err error)

Types

type PushSubscription

type PushSubscription struct {
	bun.BaseModel `bun:"table:webpush_subscriptions,alias:ps"`

	Hash           *utils.HashedString    `json:"hash" bun:"endpoint_hash,type:bytea,pk"`
	Endpoint       *utils.EncryptedString `json:"-" validate:"http_url" bun:"endpoint,type:bytea,notnull"`
	ClientId       string                 `json:"clientId" validate:"required" bun:"client_id,notnull"`
	RecipientId    string                 `json:"recipientId" validate:"required" bun:"recipient_id,notnull"`
	ExpirationTime *utils.EpochMillis     `json:"expirationTime,omitempty" validate:"omitempty,epoch-gt-now" bun:"expiration_time"`

	Keys *SubscriptionKeys `validate:"-" bun:"rel:has-one,join:endpoint_hash=subscription_hash"`
}

func GetSubscriptionByHash

func GetSubscriptionByHash(ctx context.Context, db bun.IDB, hash string) (subscription *PushSubscription, err error)

func GetSubscriptionsByClientId

func GetSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (subscriptions []*PushSubscription, err error)

func GetSubscriptionsByClientIdAndRecipientId

func GetSubscriptionsByClientIdAndRecipientId(ctx context.Context, db bun.IDB, clientId, recipientId string) (subscriptions []*PushSubscription, err error)

func (*PushSubscription) BeforeAppendModel

func (s *PushSubscription) BeforeAppendModel(ctx context.Context, query bun.Query) error

func (*PushSubscription) Save

func (s *PushSubscription) Save(ctx context.Context, db bun.IDB) (err error)

func (PushSubscription) String

func (s PushSubscription) String() string

func (PushSubscription) Validate

func (s PushSubscription) Validate() (err error)

type SubscriptionKeys

type SubscriptionKeys struct {
	bun.BaseModel `bun:"table:webpush_keys,alias:pk"`

	Hash           *utils.HashedString   `json:"hash" bun:"p256dh_hash,type:bytea,pk"`
	P256DH         *utils.EncryptedBytes `json:"-" validate:"required" bun:"p256dh,type:bytea,notnull"`
	AuthSecretHash *utils.HashedString   `json:"-" bun:"auth_secret_hash,type:bytea,notnull,unique"`
	AuthSecret     *utils.EncryptedBytes `json:"-" validate:"required" bun:"auth_secret,type:bytea,notnull"`

	PushSubscriptionHash *utils.HashedString `json:"-" validate:"required" bun:"subscription_hash,type:bytea,notnull,unique"`
}

func (*SubscriptionKeys) BeforeAppendModel

func (k *SubscriptionKeys) BeforeAppendModel(ctx context.Context, query bun.Query) error

func (*SubscriptionKeys) Save

func (k *SubscriptionKeys) Save(ctx context.Context, db bun.IDB) (err error)

func (SubscriptionKeys) String

func (k SubscriptionKeys) String() string

func (SubscriptionKeys) Validate

func (k SubscriptionKeys) Validate() (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL