Commit f28b459bc92159a456b7de3ef7ff376939ca12ee

Authored by Zambom
1 parent 7558958e

Adding function to get chat messages to api (initial)

api/urls.py
... ... @@ -15,6 +15,7 @@ router.register(r'usersapi', UserViewSet)
15 15 router.register(r'users', views.LoginViewset)
16 16 router.register(r'subjects', views.SubjectViewset)
17 17 router.register(r'participants', views.ParticipantsViewset)
  18 +router.register(r'chat', views.ChatViewset)
18 19  
19 20 urlpatterns = [
20 21 #API REST
... ...
api/views.py
... ... @@ -12,6 +12,9 @@ from django.db.models import Q
12 12  
13 13 from security.models import Security
14 14  
  15 +from chat.serializers import ChatSerializer
  16 +from chat.models import TalkMessages
  17 +
15 18 from subjects.serializers import SubjectSerializer
16 19 from subjects.models import Subject
17 20  
... ... @@ -180,4 +183,42 @@ class ParticipantsViewset(viewsets.ReadOnlyModelViewSet):
180 183  
181 184 response = json.dumps(info)
182 185  
  186 + return HttpResponse(response)
  187 +
  188 +class ChatViewset(viewsets.ModelViewSet):
  189 + queryset = TalkMessages.objects.all()
  190 + permissions_classes = (IsAuthenticated, )
  191 +
  192 + @csrf_exempt
  193 + @list_route(methods = ['POST'], permissions_classes = [IsAuthenticated])
  194 + def get_messages(self, request):
  195 + username = request.data['email']
  196 + user_two = request.data['user_two']
  197 +
  198 + messages = None
  199 +
  200 + response = ""
  201 +
  202 + if not user_two == "":
  203 + messages = TalkMessages.objects.filter((Q(talk__user_one__email = username) & Q(talk__user_two__email = user_two)) | (Q(talk__user_one__email = user_two) & Q(talk__user_two__email = username))).order_by('-create_date')
  204 +
  205 + serializer = ChatSerializer(messages, many = True)
  206 +
  207 + json_r = json.dumps(serializer.data)
  208 + json_r = json.loads(json_r)
  209 +
  210 + info = {}
  211 +
  212 + info["data"] = {}
  213 + info["data"]["messages"] = json_r
  214 +
  215 + info["message"] = ""
  216 + info["type"] = ""
  217 + info["title"] = ""
  218 + info["success"] = True
  219 + info["number"] = 1
  220 + info['extra'] = 0
  221 +
  222 + response = json.dumps(info)
  223 +
183 224 return HttpResponse(response)
184 225 \ No newline at end of file
... ...
chat/serializers.py 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +from rest_framework import serializers
  2 +
  3 +from .models import TalkMessages
  4 +
  5 +from subjects.serializers import SubjectSerializer
  6 +from users.serializers import UserSerializer
  7 +
  8 +class ChatSerializer(serializers.ModelSerializer):
  9 + user = UserSerializer()
  10 + subject = SubjectSerializer()
  11 + image = serializers.CharField(required = False, allow_blank = True, max_length = 255)
  12 +
  13 + class Meta:
  14 + model = TalkMessages
  15 + exclude = ["talk"]
0 16 \ No newline at end of file
... ...
subjects/serializers.py
... ... @@ -2,8 +2,6 @@ from rest_framework import serializers
2 2  
3 3 from .models import Subject, Tag
4 4  
5   -from users.serializers import UserSerializer
6   -
7 5 class TagSerializer(serializers.ModelSerializer):
8 6 def validate(self, data):
9 7 query = Tag.objects.filter(name = data['name'])
... ...