Pārlūkot izejas kodu

Feat/user session id search (#6638)

tags/0.6.16
Joe pirms 1 gada
vecāks
revīzija
b347a2f839
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam
1 mainītis faili ar 19 papildinājumiem un 7 dzēšanām
  1. 19
    7
      api/controllers/console/app/conversation.py

+ 19
- 7
api/controllers/console/app/conversation.py Parādīt failu

) )
from libs.helper import datetime_string from libs.helper import datetime_string
from libs.login import login_required from libs.login import login_required
from models.model import AppMode, Conversation, Message, MessageAnnotation
from models.model import AppMode, Conversation, EndUser, Message, MessageAnnotation




class CompletionConversationApi(Resource): class CompletionConversationApi(Resource):
parser.add_argument('limit', type=int_range(1, 100), required=False, default=20, location='args') parser.add_argument('limit', type=int_range(1, 100), required=False, default=20, location='args')
args = parser.parse_args() args = parser.parse_args()


subquery = (
db.session.query(
Conversation.id.label('conversation_id'),
EndUser.session_id.label('from_end_user_session_id')
)
.outerjoin(EndUser, Conversation.from_end_user_id == EndUser.id)
.subquery()
)

query = db.select(Conversation).where(Conversation.app_id == app_model.id) query = db.select(Conversation).where(Conversation.app_id == app_model.id)


if args['keyword']: if args['keyword']:
keyword_filter = '%{}%'.format(args['keyword'])
query = query.join( query = query.join(
Message, Message.conversation_id == Conversation.id
Message, Message.conversation_id == Conversation.id,
).join(
subquery, subquery.c.conversation_id == Conversation.id
).filter( ).filter(
or_( or_(
Message.query.ilike('%{}%'.format(args['keyword'])),
Message.answer.ilike('%{}%'.format(args['keyword'])),
Conversation.name.ilike('%{}%'.format(args['keyword'])),
Conversation.introduction.ilike('%{}%'.format(args['keyword'])),
Message.query.ilike(keyword_filter),
Message.answer.ilike(keyword_filter),
Conversation.name.ilike(keyword_filter),
Conversation.introduction.ilike(keyword_filter),
subquery.c.from_end_user_session_id.ilike(keyword_filter)
), ),

) )


account = current_user account = current_user

Notiek ielāde…
Atcelt
Saglabāt