Documentation
¶
Index ¶
- func DeleteSubscriptionByEndpoint(ctx context.Context, db bun.IDB, endpoint string) (err error)
- func DeleteSubscriptionByHash(ctx context.Context, db bun.IDB, hash string) (err error)
- func DeleteSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (err error)
- func DeleteSubscriptionsByClientIdAndRecipientId(ctx context.Context, db bun.IDB, clientId, recipientId string) (err error)
- func HasExistingSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (exists bool, err error)
- type PushSubscription
- func GetSubscriptionByHash(ctx context.Context, db bun.IDB, hash string) (subscription *PushSubscription, err error)
- func GetSubscriptionsByClientId(ctx context.Context, db bun.IDB, clientId string) (subscriptions []*PushSubscription, err error)
- func GetSubscriptionsByClientIdAndRecipientId(ctx context.Context, db bun.IDB, clientId, recipientId string) (subscriptions []*PushSubscription, err error)
- type SubscriptionKeys
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 (*PushSubscription) BeforeAppendModel ¶
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 (SubscriptionKeys) String ¶
func (k SubscriptionKeys) String() string
func (SubscriptionKeys) Validate ¶
func (k SubscriptionKeys) Validate() (err error)
Click to show internal directories.
Click to hide internal directories.