|
|
|
@ -151,7 +151,12 @@ class MessageService:
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
@classmethod
|
|
|
|
def create_feedback(
|
|
|
|
def create_feedback(
|
|
|
|
cls, app_model: App, message_id: str, user: Optional[Union[Account, EndUser]], rating: Optional[str]
|
|
|
|
cls,
|
|
|
|
|
|
|
|
app_model: App,
|
|
|
|
|
|
|
|
message_id: str,
|
|
|
|
|
|
|
|
user: Optional[Union[Account, EndUser]],
|
|
|
|
|
|
|
|
rating: Optional[str],
|
|
|
|
|
|
|
|
content: Optional[str],
|
|
|
|
) -> MessageFeedback:
|
|
|
|
) -> MessageFeedback:
|
|
|
|
if not user:
|
|
|
|
if not user:
|
|
|
|
raise ValueError("user cannot be None")
|
|
|
|
raise ValueError("user cannot be None")
|
|
|
|
@ -164,6 +169,7 @@ class MessageService:
|
|
|
|
db.session.delete(feedback)
|
|
|
|
db.session.delete(feedback)
|
|
|
|
elif rating and feedback:
|
|
|
|
elif rating and feedback:
|
|
|
|
feedback.rating = rating
|
|
|
|
feedback.rating = rating
|
|
|
|
|
|
|
|
feedback.content = content
|
|
|
|
elif not rating and not feedback:
|
|
|
|
elif not rating and not feedback:
|
|
|
|
raise ValueError("rating cannot be None when feedback not exists")
|
|
|
|
raise ValueError("rating cannot be None when feedback not exists")
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
@ -172,6 +178,7 @@ class MessageService:
|
|
|
|
conversation_id=message.conversation_id,
|
|
|
|
conversation_id=message.conversation_id,
|
|
|
|
message_id=message.id,
|
|
|
|
message_id=message.id,
|
|
|
|
rating=rating,
|
|
|
|
rating=rating,
|
|
|
|
|
|
|
|
content=content,
|
|
|
|
from_source=("user" if isinstance(user, EndUser) else "admin"),
|
|
|
|
from_source=("user" if isinstance(user, EndUser) else "admin"),
|
|
|
|
from_end_user_id=(user.id if isinstance(user, EndUser) else None),
|
|
|
|
from_end_user_id=(user.id if isinstance(user, EndUser) else None),
|
|
|
|
from_account_id=(user.id if isinstance(user, Account) else None),
|
|
|
|
from_account_id=(user.id if isinstance(user, Account) else None),
|
|
|
|
|