MCPcopy Index your code
hub / github.com/coder/coder / RegenerateVAPIDKeys

Function RegenerateVAPIDKeys

coderd/webpush/webpush.go:514–536  ·  view source on GitHub ↗

RegenerateVAPIDKeys regenerates the VAPID keys and deletes all existing push subscriptions as part of the transaction, as they are no longer valid.

(ctx context.Context, db database.Store)

Source from the content-addressed store, hash-verified

512// RegenerateVAPIDKeys regenerates the VAPID keys and deletes all existing
513// push subscriptions as part of the transaction, as they are no longer valid.
514func RegenerateVAPIDKeys(ctx context.Context, db database.Store) (newPrivateKey string, newPublicKey string, err error) {
515 newPrivateKey, newPublicKey, err = webpush.GenerateVAPIDKeys()
516 if err != nil {
517 return "", "", xerrors.Errorf("generate new vapid keypair: %w", err)
518 }
519
520 if txErr := db.InTx(func(tx database.Store) error {
521 if err := tx.DeleteAllWebpushSubscriptions(ctx); err != nil {
522 return xerrors.Errorf("delete all webpush subscriptions: %w", err)
523 }
524 if err := tx.UpsertWebpushVAPIDKeys(ctx, database.UpsertWebpushVAPIDKeysParams{
525 VapidPrivateKey: newPrivateKey,
526 VapidPublicKey: newPublicKey,
527 }); err != nil {
528 return xerrors.Errorf("upsert notification vapid key: %w", err)
529 }
530 return nil
531 }, nil); txErr != nil {
532 return "", "", xerrors.Errorf("regenerate vapid keypair: %w", txErr)
533 }
534
535 return newPrivateKey, newPublicKey, nil
536}

Callers 2

NewFunction · 0.85

Calls 4

InTxMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected