Ver código fonte

Fixes #23921 (#23924)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
tags/1.8.0
Alex Chim 2 meses atrás
pai
commit
4a2e6af9b5
Nenhuma conta vinculada ao e-mail do autor do commit

+ 5
- 4
api/controllers/service_api/app/conversation.py Ver arquivo

@@ -1,5 +1,3 @@
import json

from flask_restful import Resource, marshal_with, reqparse
from flask_restful.inputs import int_range
from sqlalchemy.orm import Session
@@ -136,12 +134,15 @@ class ConversationVariableDetailApi(Resource):
variable_id = str(variable_id)

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()

try:
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:
raise NotFound("Conversation Not Exists.")

+ 5
- 0
api/services/conversation_service.py Ver arquivo

@@ -277,6 +277,11 @@ class ConversationService:

# Validate that the new value type matches the expected variable 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):
inferred_type = SegmentType.infer_segment_type(new_value)
raise ConversationVariableTypeMismatchError(

Carregando…
Cancelar
Salvar