Browse Source

修改bug

yjp 1 year ago
parent
commit
60adb93223
2 changed files with 50 additions and 10 deletions
  1. 31 6
      convenient/gwtools/entity_crud.go
  2. 19 4
      convenient/gwtools/value_object_crud.go

+ 31 - 6
convenient/gwtools/entity_crud.go

@@ -85,7 +85,12 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 				}
 
 				if createOptions.beforeBuilderCallback != nil {
-					copyBuilder = createOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := createOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				jsonBody, err := c.GetJsonBody()
@@ -114,7 +119,12 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 		deleteRequest := gateway.NewDeleteRequest(params.ServiceVersionedUrl+domainPath+"/delete",
 			gateway.DeleteRequestWithQueryParamsForm(func(c *api.Context, historyRequest []gateway.BuilderRequest, resultMap map[string]any) (map[string]string, error) {
 				if deleteOptions.beforeBuilderCallback != nil {
-					copyBuilder = deleteOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := deleteOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				return c.GetQueryParams().Map(), nil
@@ -143,7 +153,12 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 				}
 
 				if updateOptions.beforeBuilderCallback != nil {
-					copyBuilder = updateOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := updateOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				jsonBody, err := c.GetJsonBody()
@@ -177,7 +192,12 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 				}
 
 				if queryOptions.beforeBuilderCallback != nil {
-					copyBuilder = queryOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := queryOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				return c.GetQueryParams().Map(), nil
@@ -201,7 +221,12 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 		getRequest := gateway.NewGetRequest(params.ServiceVersionedUrl+domainPath+"/get",
 			gateway.GetRequestWithQueryParamsForm(func(c *api.Context, historyRequest []gateway.BuilderRequest, resultMap map[string]any) (map[string]string, error) {
 				if getByIDOptions.beforeBuilderCallback != nil {
-					copyBuilder = getByIDOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := getByIDOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				return c.GetQueryParams().Map(), nil
@@ -217,7 +242,7 @@ func (params *EntityCRUDParams) crud(builder *gateway.Builder) {
 	}
 }
 
-type EntityCRUDBeforeCallback func(builder *gateway.Builder, c *api.Context) *gateway.Builder
+type EntityCRUDBeforeCallback func(builder *gateway.Builder, c *api.Context) (*gateway.Builder, error)
 type EntityCRUDAfterCallback func(builder *gateway.Builder) *gateway.Builder
 
 type EntityCRUDGlobalOption func(options *EntityCRUDGlobalOptions)

+ 19 - 4
convenient/gwtools/value_object_crud.go

@@ -73,7 +73,12 @@ func (params *ValueObjectCRUDParams) crud(builder *gateway.Builder) {
 				}
 
 				if createOptions.beforeBuilderCallback != nil {
-					copyBuilder = createOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := createOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				jsonBody, err := c.GetJsonBody()
@@ -102,7 +107,12 @@ func (params *ValueObjectCRUDParams) crud(builder *gateway.Builder) {
 		postRequest := gateway.NewPostRequest(params.ServiceVersionedUrl+domainPath+"/delete",
 			gateway.PostRequestWithBodyForm(func(c *api.Context, historyRequest []gateway.BuilderRequest, resultMap map[string]any) (any, error) {
 				if deleteOptions.beforeBuilderCallback != nil {
-					copyBuilder = deleteOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := deleteOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				jsonBody, err := c.GetJsonBody()
@@ -136,7 +146,12 @@ func (params *ValueObjectCRUDParams) crud(builder *gateway.Builder) {
 				}
 
 				if queryOptions.beforeBuilderCallback != nil {
-					copyBuilder = queryOptions.beforeBuilderCallback(copyBuilder, c)
+					innerBuilder, err := queryOptions.beforeBuilderCallback(copyBuilder, c)
+					if err != nil {
+						return nil, err
+					}
+
+					copyBuilder = innerBuilder
 				}
 
 				return c.GetQueryParams().Map(), nil
@@ -152,7 +167,7 @@ func (params *ValueObjectCRUDParams) crud(builder *gateway.Builder) {
 	}
 }
 
-type ValueObjectCRUDBeforeCallback func(builder *gateway.Builder, c *api.Context) *gateway.Builder
+type ValueObjectCRUDBeforeCallback func(builder *gateway.Builder, c *api.Context) (*gateway.Builder, error)
 type ValueObjectCRUDAfterCallback func(builder *gateway.Builder) *gateway.Builder
 
 type ValueObjectCRUDGlobalOption func(options *ValueObjectCRUDGlobalOptions)