Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
import json
|
|
||||||
|
|
||||||
from flask_restful import Resource, marshal_with, reqparse
|
from flask_restful import Resource, marshal_with, reqparse
|
||||||
from flask_restful.inputs import int_range
|
from flask_restful.inputs import int_range
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
@@ -136,12 +134,15 @@ class ConversationVariableDetailApi(Resource):
|
|||||||
variable_id = str(variable_id)
|
variable_id = str(variable_id)
|
||||||
|
|
||||||
parser = reqparse.RequestParser()
|
parser = reqparse.RequestParser()
|
||||||
parser.add_argument("value", required=True, location="json")
|
# using lambda is for passing the already-typed value without modification
|
||||||
|
# if no lambda, it will be converted to string
|
||||||
|
# the string cannot be converted using json.loads
|
||||||
|
parser.add_argument("value", required=True, location="json", type=lambda x: x)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return ConversationService.update_conversation_variable(
|
return ConversationService.update_conversation_variable(
|
||||||
app_model, conversation_id, variable_id, end_user, json.loads(args["value"])
|
app_model, conversation_id, variable_id, end_user, args["value"]
|
||||||
)
|
)
|
||||||
except services.errors.conversation.ConversationNotExistsError:
|
except services.errors.conversation.ConversationNotExistsError:
|
||||||
raise NotFound("Conversation Not Exists.")
|
raise NotFound("Conversation Not Exists.")
|
||||||
|
@@ -277,6 +277,11 @@ class ConversationService:
|
|||||||
|
|
||||||
# Validate that the new value type matches the expected variable type
|
# Validate that the new value type matches the expected variable type
|
||||||
expected_type = SegmentType(current_variable.value_type)
|
expected_type = SegmentType(current_variable.value_type)
|
||||||
|
|
||||||
|
# There is showing number in web ui but int in db
|
||||||
|
if expected_type == SegmentType.INTEGER:
|
||||||
|
expected_type = SegmentType.NUMBER
|
||||||
|
|
||||||
if not expected_type.is_valid(new_value):
|
if not expected_type.is_valid(new_value):
|
||||||
inferred_type = SegmentType.infer_segment_type(new_value)
|
inferred_type = SegmentType.infer_segment_type(new_value)
|
||||||
raise ConversationVariableTypeMismatchError(
|
raise ConversationVariableTypeMismatchError(
|
||||||
|
Reference in New Issue
Block a user