mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2026-10-01 19:20:31 +00:00
feat(tx): run funcspec OnTxBegin and BeforeResponse in transactions
This commit is contained in:
@@ -32,6 +32,12 @@ const (
|
||||
// BeforeOp fires immediately before every SQL operation (query, query list, SQL exec).
|
||||
// It fires at each individual SQL-operation hook point, so it runs once per statement executed.
|
||||
BeforeOp HookType = "before_op"
|
||||
|
||||
// OnTxBegin fires once, first, inside every transaction the handler opens
|
||||
// (the main transaction and the short one that runs BeforeResponse).
|
||||
// hookCtx.Tx is the transaction; use it to stamp transaction-local state such
|
||||
// as RLS settings. An error or abort rolls the transaction back.
|
||||
OnTxBegin HookType = common.TxHookName
|
||||
)
|
||||
|
||||
// HookContext contains all the data available to a hook
|
||||
@@ -75,6 +81,9 @@ type HookContext struct {
|
||||
AbortCode int // HTTP status code if aborted
|
||||
}
|
||||
|
||||
// SetTx points the context at the transaction in use (common.TxContext).
|
||||
func (c *HookContext) SetTx(tx common.Database) { c.Tx = tx }
|
||||
|
||||
// HookFunc is the signature for hook functions
|
||||
// It receives a HookContext and can modify it or return an error
|
||||
// If an error is returned, the operation will be aborted
|
||||
|
||||
Reference in New Issue
Block a user