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
@@ -33,6 +33,8 @@ from oauth2_provider.views.generic import ProtectedResourceView @@ -33,6 +33,8 @@ from oauth2_provider.views.generic import ProtectedResourceView
33 from oauth2_provider.models import Application 33 from oauth2_provider.models import Application
34 from django.http import HttpResponse 34 from django.http import HttpResponse
35 35
  36 +from fcm_django.models import FCMDevice
  37 +
36 @csrf_exempt 38 @csrf_exempt
37 def getToken(request): 39 def getToken(request):
38 oauth = Application.objects.filter(name = "amadeus-droid") 40 oauth = Application.objects.filter(name = "amadeus-droid")
@@ -111,6 +113,37 @@ class LoginViewset(viewsets.ReadOnlyModelViewSet): @@ -111,6 +113,37 @@ class LoginViewset(viewsets.ReadOnlyModelViewSet):
111 113
112 return HttpResponse(response) 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 class SubjectViewset(viewsets.ReadOnlyModelViewSet): 147 class SubjectViewset(viewsets.ReadOnlyModelViewSet):
115 queryset = Subject.objects.all() 148 queryset = Subject.objects.all()
116 permissions_classes = (IsAuthenticated, ) 149 permissions_classes = (IsAuthenticated, )
@@ -24,6 +24,8 @@ from log.models import Log @@ -24,6 +24,8 @@ from log.models import Log
24 from log.mixins import LogMixin 24 from log.mixins import LogMixin
25 import time 25 import time
26 26
  27 +from fcm_django.models import FCMDevice
  28 +
27 from categories.models import Category 29 from categories.models import Category
28 from subjects.models import Subject 30 from subjects.models import Subject
29 from users.models import User 31 from users.models import User
@@ -369,6 +371,11 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView): @@ -369,6 +371,11 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView):
369 371
370 Group("user-%s" % user.id).send({'text': notification}) 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 ChatVisualizations.objects.create(viewed = False, message = self.object, user = user) 379 ChatVisualizations.objects.create(viewed = False, message = self.object, user = user)
373 380
374 return super(SendMessage, self).form_valid(form) 381 return super(SendMessage, self).form_valid(form)