Commit 6937f6790c158190e7d3cad3d0b45675b167f79a

Authored by Zambom
1 parent 4c93f8fa

Start sending 'beta' notifications from chat to app

Showing 2 changed files with 40 additions and 0 deletions   Show diff stats
api/views.py
... ... @@ -33,6 +33,8 @@ from oauth2_provider.views.generic import ProtectedResourceView
33 33 from oauth2_provider.models import Application
34 34 from django.http import HttpResponse
35 35  
  36 +from fcm_django.models import FCMDevice
  37 +
36 38 @csrf_exempt
37 39 def getToken(request):
38 40 oauth = Application.objects.filter(name = "amadeus-droid")
... ... @@ -111,6 +113,37 @@ class LoginViewset(viewsets.ReadOnlyModelViewSet):
111 113  
112 114 return HttpResponse(response)
113 115  
  116 + @csrf_exempt
  117 + @list_route(methods = ['POST'], permissions_classes = [IsAuthenticated])
  118 + def register_device(self, request):
  119 + username = request.data['email']
  120 + device = request.data['device']
  121 +
  122 + user = self.queryset.get(email = username)
  123 + response = ""
  124 + json_r = {}
  125 +
  126 + if not user is None:
  127 + fcm_d = FCMDevice()
  128 + fcm_d.name = "phone"
  129 + fcm_d.registration_id = device
  130 + fcm_d.type = 'android'
  131 + fcm_d.user = user
  132 +
  133 + fcm_d.save()
  134 +
  135 + if not fcm_d.pk is None:
  136 + json_r["message"] = ""
  137 + json_r["type"] = ""
  138 + json_r["title"] = ""
  139 + json_r["success"] = True
  140 + json_r["number"] = 1
  141 + json_r['extra'] = 0
  142 +
  143 + response = json.dumps(json_r)
  144 +
  145 + return HttpResponse(response)
  146 +
114 147 class SubjectViewset(viewsets.ReadOnlyModelViewSet):
115 148 queryset = Subject.objects.all()
116 149 permissions_classes = (IsAuthenticated, )
... ...
chat/views.py
... ... @@ -24,6 +24,8 @@ from log.models import Log
24 24 from log.mixins import LogMixin
25 25 import time
26 26  
  27 +from fcm_django.models import FCMDevice
  28 +
27 29 from categories.models import Category
28 30 from subjects.models import Subject
29 31 from users.models import User
... ... @@ -369,6 +371,11 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView):
369 371  
370 372 Group("user-%s" % user.id).send({'text': notification})
371 373  
  374 + device = FCMDevice.objects.filter(user = user).first()
  375 +
  376 + if not device is None:
  377 + device.send_message(title = "Message", body = self.object.text)
  378 +
372 379 ChatVisualizations.objects.create(viewed = False, message = self.object, user = user)
373 380  
374 381 return super(SendMessage, self).form_valid(form)
... ...