From 6937f6790c158190e7d3cad3d0b45675b167f79a Mon Sep 17 00:00:00 2001 From: Zambom Date: Fri, 18 Aug 2017 23:41:19 -0300 Subject: [PATCH] Start sending 'beta' notifications from chat to app --- api/views.py | 33 +++++++++++++++++++++++++++++++++ chat/views.py | 7 +++++++ 2 files changed, 40 insertions(+), 0 deletions(-) diff --git a/api/views.py b/api/views.py index 5eaed85..ecf65a5 100644 --- a/api/views.py +++ b/api/views.py @@ -33,6 +33,8 @@ from oauth2_provider.views.generic import ProtectedResourceView from oauth2_provider.models import Application from django.http import HttpResponse +from fcm_django.models import FCMDevice + @csrf_exempt def getToken(request): oauth = Application.objects.filter(name = "amadeus-droid") @@ -111,6 +113,37 @@ class LoginViewset(viewsets.ReadOnlyModelViewSet): return HttpResponse(response) + @csrf_exempt + @list_route(methods = ['POST'], permissions_classes = [IsAuthenticated]) + def register_device(self, request): + username = request.data['email'] + device = request.data['device'] + + user = self.queryset.get(email = username) + response = "" + json_r = {} + + if not user is None: + fcm_d = FCMDevice() + fcm_d.name = "phone" + fcm_d.registration_id = device + fcm_d.type = 'android' + fcm_d.user = user + + fcm_d.save() + + if not fcm_d.pk is None: + json_r["message"] = "" + json_r["type"] = "" + json_r["title"] = "" + json_r["success"] = True + json_r["number"] = 1 + json_r['extra'] = 0 + + response = json.dumps(json_r) + + return HttpResponse(response) + class SubjectViewset(viewsets.ReadOnlyModelViewSet): queryset = Subject.objects.all() permissions_classes = (IsAuthenticated, ) diff --git a/chat/views.py b/chat/views.py index 121b8b3..02f4672 100644 --- a/chat/views.py +++ b/chat/views.py @@ -24,6 +24,8 @@ from log.models import Log from log.mixins import LogMixin import time +from fcm_django.models import FCMDevice + from categories.models import Category from subjects.models import Subject from users.models import User @@ -369,6 +371,11 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView): Group("user-%s" % user.id).send({'text': notification}) + device = FCMDevice.objects.filter(user = user).first() + + if not device is None: + device.send_message(title = "Message", body = self.object.text) + ChatVisualizations.objects.create(viewed = False, message = self.object, user = user) return super(SendMessage, self).form_valid(form) -- libgit2 0.21.2