30 lines
603 B
Go
30 lines
603 B
Go
package dbcache
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type CacheDependency interface {
|
|
GetValue(ctx context.Context, tx *gorm.DB) (value string, err error)
|
|
}
|
|
|
|
type SqlDependency struct {
|
|
dependSQL string
|
|
dependArgs []any
|
|
}
|
|
|
|
func (d *SqlDependency) GetValue(ctx context.Context, tx *gorm.DB) (value string, err error) {
|
|
var dependValue string
|
|
err = tx.Raw(d.dependSQL, d.dependArgs...).Scan(&dependValue).Error
|
|
return dependValue, err
|
|
}
|
|
|
|
func NewSqlDependency(dependSQL string, dependArgs ...any) *SqlDependency {
|
|
return &SqlDependency{
|
|
dependSQL: dependSQL,
|
|
dependArgs: dependArgs,
|
|
}
|
|
}
|