yjp 1 жил өмнө
parent
commit
6485fdf763

+ 5 - 2
convenient/entity_crud/service.go

@@ -167,7 +167,7 @@ func Update(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[an
 	}
 }
 
-type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool)
+type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
 func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback) binding.ServiceFunc[response.InfosData[O]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[O], error) {
@@ -206,7 +206,10 @@ func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionField
 		for _, field := range fields {
 			hasDeal := false
 			if conditionFieldCallback != nil {
-				hasDeal = conditionFieldCallback(conditions, field.FieldName, field.ColumnName, field.Value)
+				hasDeal, err = conditionFieldCallback(conditions, field.FieldName, field.ColumnName, field.Value)
+				if err != nil {
+					return errResponse, err
+				}
 			}
 
 			if !hasDeal {

+ 5 - 2
convenient/relation/one2many/service.go

@@ -312,7 +312,7 @@ func QueryRight[LI any](rightTableName string, rightRelationFieldName string, le
 	}
 }
 
-type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool)
+type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
 func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelationColumnName string, rightFieldCallback ConditionFieldCallback, leftTableName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[map[string]any], error) {
@@ -351,7 +351,10 @@ func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelation
 		for _, rightField := range rightFields {
 			hasDeal := false
 			if rightFieldCallback != nil {
-				hasDeal = rightFieldCallback(conditions, rightField.FieldName, rightField.ColumnName, rightField.Value)
+				hasDeal, err = rightFieldCallback(conditions, rightField.FieldName, rightField.ColumnName, rightField.Value)
+				if err != nil {
+					return errResponse, err
+				}
 			}
 
 			if !hasDeal {

+ 5 - 2
convenient/relation/one2one/service.go

@@ -192,7 +192,7 @@ func Query[TI any](fromTableName string, fromRelationFieldName string, toTableNa
 	}
 }
 
-type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool)
+type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
 func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumnName string, fromFieldCallback ConditionFieldCallback, toTableName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[map[string]any], error) {
@@ -231,7 +231,10 @@ func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumn
 		for _, fromField := range fromFields {
 			hasDeal := false
 			if fromFieldCallback != nil {
-				hasDeal = fromFieldCallback(conditions, fromField.FieldName, fromField.ColumnName, fromField.Value)
+				hasDeal, err = fromFieldCallback(conditions, fromField.FieldName, fromField.ColumnName, fromField.Value)
+				if err != nil {
+					return errResponse, err
+				}
 			}
 
 			if !hasDeal {

+ 5 - 2
convenient/value_object_crud/service.go

@@ -105,7 +105,7 @@ func Delete(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[an
 	}
 }
 
-type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool)
+type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, error)
 
 func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback) binding.ServiceFunc[response.InfosData[O]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[O], error) {
@@ -144,7 +144,10 @@ func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionField
 		for _, field := range fields {
 			hasDeal := false
 			if conditionFieldCallback != nil {
-				hasDeal = conditionFieldCallback(conditions, field.FieldName, field.ColumnName, field.Value)
+				hasDeal, err = conditionFieldCallback(conditions, field.FieldName, field.ColumnName, field.Value)
+				if err != nil {
+					return errResponse, err
+				}
 			}
 
 			if !hasDeal {