|
|
@@ -68,7 +68,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
Objects: []domain.Object{simple.Left},
|
|
|
ServiceFunc: Update(leftTableName, leftRelationFieldName, leftRelationColumnName,
|
|
|
rightTableName, simple.Right.DomainCNName(), rightRelationColumnName),
|
|
|
- })
|
|
|
+ }, options.leftUpdateMiddlewares...)
|
|
|
}
|
|
|
|
|
|
if !options.disableLeftQuery {
|
|
|
@@ -79,7 +79,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.LeftQueryQueryParams,
|
|
|
Objects: []domain.Object{simple.Left},
|
|
|
ServiceFunc: Query[RI](leftTableName, leftRelationFieldName, rightTableName),
|
|
|
- })
|
|
|
+ }, options.leftQueryMiddlewares...)
|
|
|
}
|
|
|
|
|
|
if !options.disableLeftWithRightQuery {
|
|
|
@@ -90,7 +90,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.LeftQueryWithRightQueryParams,
|
|
|
Objects: []domain.Object{simple.Left},
|
|
|
ServiceFunc: QueryWithOtherInfo[LI, RI](leftTableName, leftRelationColumnName, options.leftQueryWithConditionFieldCallback, rightTableName),
|
|
|
- })
|
|
|
+ }, options.leftWithRightQueryMiddlewares...)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -104,7 +104,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
Objects: []domain.Object{simple.Right},
|
|
|
ServiceFunc: Update(rightTableName, rightRelationFieldName, rightRelationColumnName,
|
|
|
leftTableName, simple.Left.DomainCNName(), leftRelationColumnName),
|
|
|
- })
|
|
|
+ }, options.rightUpdateMiddlewares...)
|
|
|
}
|
|
|
|
|
|
if !options.disableRightQuery {
|
|
|
@@ -115,7 +115,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.RightQueryQueryParams,
|
|
|
Objects: []domain.Object{simple.Right},
|
|
|
ServiceFunc: Query[LI](rightTableName, rightRelationFieldName, leftTableName),
|
|
|
- })
|
|
|
+ }, options.rightQueryMiddlewares...)
|
|
|
}
|
|
|
|
|
|
if !options.disableRightWithLeftQuery {
|
|
|
@@ -126,7 +126,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.RightQueryWithLeftQueryParams,
|
|
|
Objects: []domain.Object{simple.Right},
|
|
|
ServiceFunc: QueryWithOtherInfo[RI, LI](rightTableName, rightRelationColumnName, options.rightQueryWithConditionFieldCallback, leftTableName),
|
|
|
- })
|
|
|
+ }, options.rightWithLeftQueryMiddlewares...)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -175,6 +175,24 @@ type Options struct {
|
|
|
|
|
|
// 右查询条件构造回调
|
|
|
rightQueryWithConditionFieldCallback ConditionFieldCallback
|
|
|
+
|
|
|
+ // 左侧更新中间件
|
|
|
+ leftUpdateMiddlewares []binding.Middleware
|
|
|
+
|
|
|
+ // 左侧查询中间件
|
|
|
+ leftQueryMiddlewares []binding.Middleware
|
|
|
+
|
|
|
+ // 左实体带右实体查询中间件
|
|
|
+ leftWithRightQueryMiddlewares []binding.Middleware
|
|
|
+
|
|
|
+ // 右侧更新中间件
|
|
|
+ rightUpdateMiddlewares []binding.Middleware
|
|
|
+
|
|
|
+ // 右侧查询中间件
|
|
|
+ rightQueryMiddlewares []binding.Middleware
|
|
|
+
|
|
|
+ // 右实体带左实体查询中间件
|
|
|
+ rightWithLeftQueryMiddlewares []binding.Middleware
|
|
|
}
|
|
|
|
|
|
func WithDisableLeft() Option {
|
|
|
@@ -236,3 +254,39 @@ func WithRightQueryWithConditionFieldCallback(callbacks ConditionFieldCallback)
|
|
|
options.rightQueryWithConditionFieldCallback = callbacks
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func WithLeftUpdateMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.leftUpdateMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func WithLeftQueryMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.leftQueryMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func WithLeftWithRightQueryMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.leftWithRightQueryMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func WithRightUpdateMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.rightUpdateMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func WithRightQueryMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.rightQueryMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func WithRightWithLeftQueryMiddlewares(middlewares ...binding.Middleware) Option {
|
|
|
+ return func(options *Options) {
|
|
|
+ options.rightWithLeftQueryMiddlewares = middlewares
|
|
|
+ }
|
|
|
+}
|