def post(self, request): req_data = request.data user = request.user try: device = FCMDevice.objects.get(user=user) connection.close() return Response( {"message": "Device already registered for the user"}, status=status.HTTP_400_BAD_REQUEST, ) except: device = FCMDevice() device.device_id = req_data["device_id"] device.registration_id = req_data["registration_id"] device.type = "Android" device.user = request.user device.save() connection.close() return Response( { "message": "New Device Registered", "device_details": { "device_id": device.device_id, "registration_id": device.registration_id, "type": device.type, "user": device.user.id, }, }, status=status.HTTP_201_CREATED, )
def send_app_notification(all_devices, title, body, data=None): return from notification.models import MobileDevice all_devices = MobileDevice.objects.filter(id__in=all_devices) if not all_devices: print('No Devices found for notification') return if settings.ENABLE_NOTIFICATION: device = FCMDevice() for each_user in all_devices: # print(each_user.device_id) # print(each_user.token) device.device_id = each_user.device_id device.registration_id = each_user.token device.save() device.send_message(data=data) else: print('Notification sent to Users:') for each_user in all_devices: msg = "Device Id: {} Token: {} Title: {} Body: {} ".format( each_user.device_id, each_user.token, title, body) print(msg)
def post(self, request, **kwargs): ser = self.serializer_class(data=request.data, context={'request': request}) if ser.is_valid(): try: device = FCMDevice.objects.get( device_id=request.data['device']) device.registration_id = request.data['token'] device.save() return Response(True, status=status.HTTP_200_OK) except ObjectDoesNotExist as e: fcm_device = FCMDevice() user_details: UserDetails = UserDetails.objects.get( user=request.user) fcm_device.name = user_details.username fcm_device.user = request.user fcm_device.device_id = request.data['device'] fcm_device.registration_id = request.data['token'] fcm_device.type = 'ios' if request.data[ 'platform'] == 2 else 'android' if request.data[ 'platform'] == 1 else 'web' fcm_device.save() return Response(True, status=status.HTTP_200_OK) return Response(False, status=status.HTTP_200_OK)