|
@@ -74,7 +74,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
ServiceFunc: Update(middleTableName,
|
|
ServiceFunc: Update(middleTableName,
|
|
|
leftRemote, leftTableName, simple.Left.DomainCNName(), leftRelationFieldName, leftRelationColumnName,
|
|
leftRemote, leftTableName, simple.Left.DomainCNName(), leftRelationFieldName, leftRelationColumnName,
|
|
|
rightRemote, rightTableName, rightRelationColumnName),
|
|
rightRemote, rightTableName, rightRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.leftUpdateMiddlewares...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if !options.disableLeftQuery {
|
|
if !options.disableLeftQuery {
|
|
@@ -86,7 +86,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.LeftQueryQueryParams,
|
|
RequestParams: simple.LeftQueryQueryParams,
|
|
|
Objects: []domain.Object{simple.Left},
|
|
Objects: []domain.Object{simple.Left},
|
|
|
ServiceFunc: QueryToRemote(middleTableName, leftRemote, leftTableName, leftRelationColumnName, rightRelationColumnName),
|
|
ServiceFunc: QueryToRemote(middleTableName, leftRemote, leftTableName, leftRelationColumnName, rightRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.leftQueryMiddlewares...)
|
|
|
} else {
|
|
} else {
|
|
|
binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[RI]]{
|
|
binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[RI]]{
|
|
|
Path: leftDomainPath + rightDomainPath + "/query",
|
|
Path: leftDomainPath + rightDomainPath + "/query",
|
|
@@ -96,7 +96,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
ServiceFunc: QueryToExist[RI](middleTableName,
|
|
ServiceFunc: QueryToExist[RI](middleTableName,
|
|
|
leftRemote, leftTableName, leftRelationColumnName,
|
|
leftRemote, leftTableName, leftRelationColumnName,
|
|
|
rightTableName, rightRelationColumnName),
|
|
rightTableName, rightRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.leftQueryMiddlewares...)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -112,7 +112,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
ServiceFunc: Update(middleTableName,
|
|
ServiceFunc: Update(middleTableName,
|
|
|
rightRemote, rightTableName, simple.Right.DomainCNName(), rightRelationFieldName, rightRelationColumnName,
|
|
rightRemote, rightTableName, simple.Right.DomainCNName(), rightRelationFieldName, rightRelationColumnName,
|
|
|
leftRemote, leftTableName, leftRelationColumnName),
|
|
leftRemote, leftTableName, leftRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.rightUpdateMiddlewares...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if !options.disableRightQuery {
|
|
if !options.disableRightQuery {
|
|
@@ -124,7 +124,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
RequestParams: simple.RightQueryQueryParams,
|
|
RequestParams: simple.RightQueryQueryParams,
|
|
|
Objects: []domain.Object{simple.Right},
|
|
Objects: []domain.Object{simple.Right},
|
|
|
ServiceFunc: QueryToRemote(middleTableName, rightRemote, rightTableName, rightRelationColumnName, leftRelationColumnName),
|
|
ServiceFunc: QueryToRemote(middleTableName, rightRemote, rightTableName, rightRelationColumnName, leftRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.rightQueryMiddlewares...)
|
|
|
} else {
|
|
} else {
|
|
|
binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[LI]]{
|
|
binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[LI]]{
|
|
|
Path: rightDomainPath + leftDomainPath + "/query",
|
|
Path: rightDomainPath + leftDomainPath + "/query",
|
|
@@ -134,7 +134,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
|
|
|
ServiceFunc: QueryToExist[LI](middleTableName,
|
|
ServiceFunc: QueryToExist[LI](middleTableName,
|
|
|
rightRemote, rightTableName, rightRelationColumnName,
|
|
rightRemote, rightTableName, rightRelationColumnName,
|
|
|
leftTableName, leftRelationColumnName),
|
|
leftTableName, leftRelationColumnName),
|
|
|
- })
|
|
|
|
|
|
|
+ }, options.rightQueryMiddlewares...)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -172,6 +172,18 @@ type Options struct {
|
|
|
|
|
|
|
|
// 关闭右侧查询
|
|
// 关闭右侧查询
|
|
|
disableRightQuery bool
|
|
disableRightQuery bool
|
|
|
|
|
+
|
|
|
|
|
+ // 左侧更新中间件
|
|
|
|
|
+ leftUpdateMiddlewares []binding.Middleware
|
|
|
|
|
+
|
|
|
|
|
+ // 左侧查询中间件
|
|
|
|
|
+ leftQueryMiddlewares []binding.Middleware
|
|
|
|
|
+
|
|
|
|
|
+ // 右侧更新中间件
|
|
|
|
|
+ rightUpdateMiddlewares []binding.Middleware
|
|
|
|
|
+
|
|
|
|
|
+ // 右侧查询中间件
|
|
|
|
|
+ rightQueryMiddlewares []binding.Middleware
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func WithDisableLeft() Option {
|
|
func WithDisableLeft() Option {
|
|
@@ -209,3 +221,27 @@ func WithDisableRightQuery() Option {
|
|
|
options.disableRightQuery = true
|
|
options.disableRightQuery = true
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+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 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
|
|
|
|
|
+ }
|
|
|
|
|
+}
|