def client_post_message(request, chat_uuid): """ Post the message from the end user and return a list of any new messages based on the last_messag_id specified. """ chat = get_object_or_404(Chat, hash_key=chat_uuid) last_message_id = request.POST.get('last_message_id') if request.method == 'POST': message_form = ChatMessageForm(request.POST or None) if message_form.is_valid(): message = message_form.save(commit=False) message.chat = chat message.name = request.user.username message.save() else: message = ChatMessage() message.message = request.GET.get('message') sendUserid = request.GET.get('user_id') message.chat = chat message.name = User.objects.get(id=sendUserid).username message.save() if last_message_id: new_messages = chat.messages.filter(id__gt=last_message_id) else: new_messages = chat.messages.all() new_message_list = [] for message in new_messages: new_message_list.append({ 'name': escape(message.name), 'message': escape(message.message), 'pk': message.pk, 'chat': chat.id, }) return HttpResponse(json.dumps(new_message_list))
def end_chat(request, chat_id): chat = get_object_or_404(Chat, id=chat_id) message = ChatMessage() name = request.user.first_name or request.user.username message.message = '%s has left the chat. This chat has ended.' % name chat.messages.add(message) if request.POST.get('end_chat') == 'true': chat.end() return HttpResponseRedirect(request.META['HTTP_REFERER'])
def join_chat(request, chat_id): chat = get_object_or_404(Chat, id=chat_id) if request.user.is_authenticated(): chat.agents.add(request.user) message = ChatMessage() name = request.user.first_name or request.user.username message.message = '%s has joined the chat' % name chat.messages.add(message) return HttpResponseRedirect(request.META['HTTP_REFERER'])
def client_end_chat(request, chat_uuid): chat = get_object_or_404(Chat, hash_key=chat_uuid) if request.POST.get('end_chat') == 'true': message = ChatMessage() name = request.POST.get('name', 'the user') message.message = '%s has left the chat. This chat has ended.' % name chat.messages.add(message) chat.end() return HttpResponse('Thank you')