Commit f28b459bc92159a456b7de3ef7ff376939ca12ee
1 parent
7558958e
Exists in
master
and in
2 other branches
Adding function to get chat messages to api (initial)
Showing
4 changed files
with
57 additions
and
2 deletions
Show diff stats
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 | ... | ... |
... | ... | @@ -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']) | ... | ... |