def route_get_conversation(conversation_id): uid = request.headers.get("uid", None) user = User.objects.get_or_404(uid=uid) conversation = Conversation.objects.get_or_404(id=conversation_id, participants=user).to_mongo() user_ids = get_conversation_reference_ids([conversation]) user_index = User.get_users_dict(user_ids) conversation["participants"] = [user_index.get(str(user_id), None) for user_id in conversation["participants"]] conversation["references"] = [user_index.get(str(user_id), None) for user_id in conversation["references"]] response = encode(conversation) return Response(response, mimetype="application/json")
def route_list_user_conversations(): uid = request.headers.get("uid", None) user = User.objects.get_or_404(uid=uid) conversations = Conversation.objects(participants=user).as_pymongo() user_ids = get_conversation_reference_ids(conversations) users_dict = User.get_users_dict(user_ids) converted = [] for conversation in conversations: participants = [users_dict.get(str(user_id), None) for user_id in conversation.get("participants")] references = [users_dict.get(str(user_id), None) for user_id in conversation.get("references")] if None not in participants and None not in references: conversation["participants"] = participants conversation["references"] = references converted.append(conversation) response = encode(converted) return Response(response, mimetype="application/json")