fix(db): always use begin tx (#7142)

* fix(db): always use begin tx

* fix(handler): timeout for begin
This commit is contained in:
Silvan
2024-01-04 17:12:20 +01:00
committed by GitHub
parent c0cef4983a
commit b7d027e2fd
19 changed files with 59 additions and 56 deletions

View File

@@ -1,6 +1,7 @@
package database
import (
"context"
"database/sql"
sq "github.com/Masterminds/squirrel"
@@ -98,7 +99,7 @@ func (d *database) ReadKey(id string) (_ *crypto.Key, err error) {
}, nil
}
func (d *database) CreateKeys(keys ...*crypto.Key) error {
func (d *database) CreateKeys(ctx context.Context, keys ...*crypto.Key) error {
insert := sq.Insert(EncryptionKeysTable).
Columns(encryptionKeysIDCol, encryptionKeysKeyCol).PlaceholderFormat(sq.Dollar)
for _, key := range keys {
@@ -112,7 +113,7 @@ func (d *database) CreateKeys(keys ...*crypto.Key) error {
if err != nil {
return zerrors.ThrowInternal(err, "", "unable to insert new keys")
}
tx, err := d.client.Begin()
tx, err := d.client.BeginTx(ctx, nil)
if err != nil {
return zerrors.ThrowInternal(err, "", "unable to insert new keys")
}

View File

@@ -1,6 +1,7 @@
package database
import (
"context"
"database/sql"
"database/sql/driver"
"errors"
@@ -395,7 +396,7 @@ func Test_database_CreateKeys(t *testing.T) {
masterKey: tt.fields.masterKey,
encrypt: tt.fields.encrypt,
}
err := d.CreateKeys(tt.args.keys...)
err := d.CreateKeys(context.Background(), tt.args.keys...)
if tt.res.err == nil {
assert.NoError(t, err)
} else if tt.res.err != nil && !tt.res.err(err) {

View File

@@ -1,7 +1,9 @@
package crypto
import "context"
type KeyStorage interface {
ReadKeys() (Keys, error)
ReadKey(id string) (*Key, error)
CreateKeys(...*Key) error
CreateKeys(context.Context, ...*Key) error
}