// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: push_subscriptions.sql package db import ( "context" "database/sql" ) const deletePushSubscription = `-- name: DeletePushSubscription :execrows DELETE FROM push_subscriptions WHERE endpoint = ? ` func (q *Queries) DeletePushSubscription(ctx context.Context, endpoint string) (int64, error) { result, err := q.db.ExecContext(ctx, deletePushSubscription, endpoint) if err != nil { return 0, err } return result.RowsAffected() } const upsertPushSubscription = `-- name: UpsertPushSubscription :one INSERT INTO push_subscriptions ( id, endpoint, p256dh, auth, user_agent, failure_count, created_at, updated_at ) VALUES ( ?, ?, ?, ?, ?, 0, ?, ? ) ON CONFLICT (endpoint) DO UPDATE SET p256dh = excluded.p256dh, auth = excluded.auth, user_agent = excluded.user_agent, failure_count = 0, updated_at = excluded.updated_at RETURNING id, endpoint, p256dh, auth, user_agent, failure_count, last_success_at, created_at, updated_at ` type UpsertPushSubscriptionParams struct { ID string Endpoint string P256dh string Auth string UserAgent sql.NullString CreatedAt string UpdatedAt string } // Stores a browser's push subscription, keyed by its endpoint. Subscribing // an endpoint already stored replaces its keys and user agent and clears // its failure count, keeping its id, created_at and last_success_at. func (q *Queries) UpsertPushSubscription(ctx context.Context, arg UpsertPushSubscriptionParams) (PushSubscription, error) { row := q.db.QueryRowContext(ctx, upsertPushSubscription, arg.ID, arg.Endpoint, arg.P256dh, arg.Auth, arg.UserAgent, arg.CreatedAt, arg.UpdatedAt, ) var i PushSubscription err := row.Scan( &i.ID, &i.Endpoint, &i.P256dh, &i.Auth, &i.UserAgent, &i.FailureCount, &i.LastSuccessAt, &i.CreatedAt, &i.UpdatedAt, ) return i, err }