Bläddra i källkod

Fixes #23921 (#23924)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
tags/1.8.0
Alex Chim 2 månader sedan
förälder
incheckning
4a2e6af9b5
Inget konto är kopplat till bidragsgivarens mejladress

+ 5
- 4
api/controllers/service_api/app/conversation.py Visa fil

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
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.")

+ 5
- 0
api/services/conversation_service.py Visa fil



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

Laddar…
Avbryt
Spara