Browse Source

修改接口

yjp 8 months ago
parent
commit
cd0b48b8d6

+ 141 - 15
convenient/gwtools/entity_crud/entity_crud.go

@@ -83,7 +83,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.PostRouteWithTenantIDAndCreateUserInfo("/"+simple.ServiceShortName+domainPath+"/create",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if createOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(createOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := createOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if createOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := createOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -124,7 +140,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.DeleteRouteWithDeleteUserInfo("/"+simple.ServiceShortName+domainPath+"/delete",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if deleteOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(deleteOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := deleteOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if deleteOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := deleteOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -165,7 +197,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.PutRouteWithUpdateUserInfo("/"+simple.ServiceShortName+domainPath+"/update",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if updateOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(updateOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := updateOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if updateOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := updateOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -205,7 +253,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.GetRouteWithTenantID("/"+simple.ServiceShortName+domainPath+"/query",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if queryOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(queryOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := queryOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if queryOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := queryOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -245,7 +309,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.GetRoute("/"+simple.ServiceShortName+domainPath+"/get",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if getByIDOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(getByIDOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := getByIDOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if getByIDOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := getByIDOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -281,6 +361,7 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 }
 
 type RequestBuilderCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) error
+type RequestBuilderErrorCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) error
 
 type GlobalOption func(options *GlobalOptions)
 type CreateOption func(options *CreateOptions)
@@ -304,7 +385,10 @@ type CreateOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 错误响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 创建中间件
 	middlewares []gateway.Handler
@@ -321,7 +405,10 @@ type DeleteOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 错误响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 删除中间件
 	middlewares []gateway.Handler
@@ -338,7 +425,10 @@ type UpdateOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 错误响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 更新中间件
 	middlewares []gateway.Handler
@@ -355,7 +445,10 @@ type QueryOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 错误响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 查询中间件
 	middlewares []gateway.Handler
@@ -372,7 +465,10 @@ type GetByIDOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 错误响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 根据ID查询中间件
 	middlewares []gateway.Handler
@@ -396,12 +492,18 @@ func WithAfterCreateBuilderCallback(callbacks RequestBuilderCallback) CreateOpti
 	}
 }
 
-func WithCreateResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) CreateOption {
+func WithCreateResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) CreateOption {
 	return func(options *CreateOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithCreateResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) CreateOption {
+	return func(options *CreateOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithCreateMiddlewares(middlewares ...gateway.Handler) CreateOption {
 	return func(options *CreateOptions) {
 		options.middlewares = middlewares
@@ -426,12 +528,18 @@ func WithAfterDeleteBuilderCallback(callbacks RequestBuilderCallback) DeleteOpti
 	}
 }
 
-func WithDeleteResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) DeleteOption {
+func WithDeleteResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) DeleteOption {
 	return func(options *DeleteOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithDeleteResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) DeleteOption {
+	return func(options *DeleteOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithDeleteMiddlewares(middlewares ...gateway.Handler) DeleteOption {
 	return func(options *DeleteOptions) {
 		options.middlewares = middlewares
@@ -456,12 +564,18 @@ func WithAfterUpdateBuilderCallback(callbacks RequestBuilderCallback) UpdateOpti
 	}
 }
 
-func WithUpdateResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) UpdateOption {
+func WithUpdateResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) UpdateOption {
 	return func(options *UpdateOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithUpdateResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) UpdateOption {
+	return func(options *UpdateOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithUpdateMiddlewares(middlewares ...gateway.Handler) UpdateOption {
 	return func(options *UpdateOptions) {
 		options.middlewares = middlewares
@@ -486,12 +600,18 @@ func WithAfterQueryBuilderCallback(callbacks RequestBuilderCallback) QueryOption
 	}
 }
 
-func WithQueryResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) QueryOption {
+func WithQueryResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) QueryOption {
 	return func(options *QueryOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithQueryResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) QueryOption {
+	return func(options *QueryOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithQueryMiddlewares(middlewares ...gateway.Handler) QueryOption {
 	return func(options *QueryOptions) {
 		options.middlewares = middlewares
@@ -516,12 +636,18 @@ func WithAfterGetByIDBuilderCallback(callbacks RequestBuilderCallback) GetByIDOp
 	}
 }
 
-func WithGetByIDResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) GetByIDOption {
+func WithGetByIDResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) GetByIDOption {
 	return func(options *GetByIDOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithGetByIDResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) GetByIDOption {
+	return func(options *GetByIDOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithGetByIDMiddlewares(middlewares ...gateway.Handler) GetByIDOption {
 	return func(options *GetByIDOptions) {
 		options.middlewares = middlewares

+ 19 - 6
convenient/gwtools/pass_through/pass_through.go

@@ -490,11 +490,23 @@ func (params *Simple) passThrough(builder *gateway.Builder, httpMethod string, o
 	builder.AddRoute(httpMethod, params.RelativePath,
 		func(requestBuilder *gateway.RequestBuilder) {
 			if options.responseSuccessCallback != nil {
-				requestBuilder.ResponseSuccessCallback(options.responseSuccessCallback)
+				requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+					err := options.responseSuccessCallback(c, historyRequests, resultMap)
+					if err != nil {
+						requestBuilder.ResponseError(err)
+						return
+					}
+				})
 			}
 
 			if options.responseErrorCallback != nil {
-				requestBuilder.ResponseErrorCallback(options.responseErrorCallback)
+				requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+					retErr := options.responseErrorCallback(c, historyRequests, resultMap, err)
+					if retErr != nil {
+						requestBuilder.ResponseError(retErr)
+						return
+					}
+				})
 			}
 
 			if strutils.IsStringNotEmpty(options.tenantIDParamsName) ||
@@ -568,6 +580,7 @@ func (params *Simple) passThrough(builder *gateway.Builder, httpMethod string, o
 }
 
 type RequestBuilderCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) error
+type RequestBuilderErrCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) error
 
 type Option func(options *Options)
 
@@ -588,10 +601,10 @@ type Options struct {
 	afterRequestCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
 
 	// responseErrorCallback 失败响应回调
-	responseErrorCallback gateway.ResponseErrorCallback
+	responseErrorCallback RequestBuilderErrCallback
 
 	// 中间件
 	middlewares []gateway.Handler
@@ -633,14 +646,14 @@ func WithAfterRequestCallback(callback RequestBuilderCallback) Option {
 }
 
 // WithResponseSuccessCallback 设置成功响应回调,默认回调会将服务响应作为网关API的响应返回
-func WithResponseSuccessCallback(callback gateway.ResponseSuccessCallback) Option {
+func WithResponseSuccessCallback(callback RequestBuilderCallback) Option {
 	return func(options *Options) {
 		options.responseSuccessCallback = callback
 	}
 }
 
 // WithResponseErrorCallback 设置失败响应回调,默认回调会按照是否存在错误返回MsgResponse
-func WithResponseErrorCallback(callback gateway.ResponseErrorCallback) Option {
+func WithResponseErrorCallback(callback RequestBuilderErrCallback) Option {
 	return func(options *Options) {
 		options.responseErrorCallback = callback
 	}

+ 85 - 9
convenient/gwtools/value_object_crud/value_object_crud.go

@@ -69,7 +69,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.PostRouteWithTenantIDAndCreateUserID("/"+simple.ServiceShortName+domainPath+"/create",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if createOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(createOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := createOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if createOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := createOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -110,7 +126,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.PostRoute("/"+simple.ServiceShortName+domainPath+"/delete",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if deleteOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(deleteOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := deleteOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if deleteOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := deleteOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -151,7 +183,23 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 		builder.GetRouteWithTenantID("/"+simple.ServiceShortName+domainPath+"/query",
 			func(requestBuilder *gateway.RequestBuilder) {
 				if queryOptions.responseSuccessCallback != nil {
-					requestBuilder.ResponseSuccessCallback(queryOptions.responseSuccessCallback)
+					requestBuilder.ResponseSuccessCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) {
+						err := queryOptions.responseSuccessCallback(c, historyRequests, resultMap)
+						if err != nil {
+							requestBuilder.ResponseError(err)
+							return
+						}
+					})
+				}
+
+				if queryOptions.responseErrorCallback != nil {
+					requestBuilder.ResponseErrorCallback(func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) {
+						retErr := queryOptions.responseErrorCallback(c, historyRequests, resultMap, err)
+						if retErr != nil {
+							requestBuilder.ResponseError(retErr)
+							return
+						}
+					})
 				}
 
 				requestBuilder.
@@ -187,6 +235,7 @@ func (simple *Simple) bind(builder *gateway.Builder) {
 }
 
 type RequestBuilderCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any) error
+type RequestBuilderErrorCallback func(c *api.Context, historyRequests []gateway.Request, resultMap map[string]any, err error) error
 
 type GlobalOption func(options *GlobalOptions)
 type CreateOption func(options *CreateOptions)
@@ -208,7 +257,10 @@ type CreateOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 失败响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 创建中间件
 	middlewares []gateway.Handler
@@ -225,7 +277,10 @@ type DeleteOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 失败响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 删除中间件
 	middlewares []gateway.Handler
@@ -242,7 +297,10 @@ type QueryOptions struct {
 	afterBuilderCallback RequestBuilderCallback
 
 	// responseSuccessCallback 成功响应回调
-	responseSuccessCallback gateway.ResponseSuccessCallback
+	responseSuccessCallback RequestBuilderCallback
+
+	// responseErrorCallback 失败响应回调
+	responseErrorCallback RequestBuilderErrorCallback
 
 	// 查询中间件
 	middlewares []gateway.Handler
@@ -266,12 +324,18 @@ func WithAfterCreateBuilderCallback(callbacks RequestBuilderCallback) CreateOpti
 	}
 }
 
-func WithCreateResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) CreateOption {
+func WithCreateResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) CreateOption {
 	return func(options *CreateOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithCreateResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) CreateOption {
+	return func(options *CreateOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithCreateMiddlewares(middlewares ...gateway.Handler) CreateOption {
 	return func(options *CreateOptions) {
 		options.middlewares = middlewares
@@ -296,12 +360,18 @@ func WithAfterDeleteBuilderCallback(callbacks RequestBuilderCallback) DeleteOpti
 	}
 }
 
-func WithDeleteResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) DeleteOption {
+func WithDeleteResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) DeleteOption {
 	return func(options *DeleteOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithDeleteResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) DeleteOption {
+	return func(options *DeleteOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithDeleteMiddlewares(middlewares ...gateway.Handler) DeleteOption {
 	return func(options *DeleteOptions) {
 		options.middlewares = middlewares
@@ -326,12 +396,18 @@ func WithAfterQueryBuilderCallback(callbacks RequestBuilderCallback) QueryOption
 	}
 }
 
-func WithQueryResponseSuccessCallback(responseSuccessCallback gateway.ResponseSuccessCallback) QueryOption {
+func WithQueryResponseSuccessCallback(responseSuccessCallback RequestBuilderCallback) QueryOption {
 	return func(options *QueryOptions) {
 		options.responseSuccessCallback = responseSuccessCallback
 	}
 }
 
+func WithQueryResponseErrorCallback(responseErrorCallback RequestBuilderErrorCallback) QueryOption {
+	return func(options *QueryOptions) {
+		options.responseErrorCallback = responseErrorCallback
+	}
+}
+
 func WithQueryMiddlewares(middlewares ...gateway.Handler) QueryOption {
 	return func(options *QueryOptions) {
 		options.middlewares = middlewares