and removes folder /bff/api because all features are implemented with grpc and grpc-gateway
43 lines
768 B
Go
43 lines
768 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type UpdateAccountTxParams struct {
|
|
UpdateAccountParams
|
|
AfterUpdate func(Account) error
|
|
}
|
|
|
|
type UpdateAccountTxResult struct {
|
|
Account Account `json:"account"`
|
|
}
|
|
|
|
func (store *SQLStore) UpdateAccountTx(ctx context.Context, arg UpdateAccountTxParams) (Account, error) {
|
|
var result UpdateAccountTxResult
|
|
var err error
|
|
|
|
uid, _ := uuid.NewUUID()
|
|
|
|
arg.SecretKey = sql.NullString{
|
|
Valid: uid.String() != "",
|
|
String: uid.String(),
|
|
}
|
|
|
|
err = store.execTx(ctx, func(q *Queries) error {
|
|
var err error
|
|
|
|
result.Account, err = q.UpdateAccount(ctx, arg.UpdateAccountParams)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return arg.AfterUpdate(result.Account)
|
|
})
|
|
|
|
return result.Account, err
|
|
}
|