Example #1
0
    def register_device(self, request):
        json_data = (request.data if request.data else json.loads(
            request.body.decode("utf-8")))

        username = json_data["email"]
        device = json_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:
                FCMDevice.objects.filter(registration_id=device).exclude(
                    pk=fcm_d.pk).update(active=False)

                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)
Example #2
0
	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:
				FCMDevice.objects.filter(registration_id = device).exclude(pk = fcm_d.pk).update(active = False)

				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)
Example #3
0
 def post(self, request):
     serializer = self.serializer_class(data=request.data)
     if serializer.is_valid():
         user = serializer.save()
         if user:
             token = Token.objects.create(user=user)
             json = serializer.data
             fcm_token = json['fcm_token']
             user = json['id']
             device = FCMDevice()
             device.registration_id = fcm_token
             device.type = "Android"
             device.name = "Can be anything"
             device.user = user
             device.save()
             return Response(
                 {
                     "token": token.key,
                     "device_id": device.registration_id,
                     "error": False
                 },
                 status=status.HTTP_201_CREATED)
         else:
             data = {"error": True, "errors": serializer.errors}
             return Response(data, status=status.HTTP_400_BAD_REQUEST)
Example #4
0
    def post(self, request):
        serializer = UserRegisterSerializer(data=request.data)
        if serializer.is_valid():
            user = serializer.save()
            if user:
                token = Token.objects.create(user=user)
                json = serializer.data
                json['token'] = token.key
                fcm_token = json['fcm_token']
                role = json['role']
                device = FCMDevice()
                device.registration_id = fcm_token
                device.type = "Android"
                device.name = "Can be anything"
                device.user = user
                device.save()
                email = str(user)
                return Response(
                    {
                        "token": token.key,
                        "role": role,
                        "error": False
                    },
                    status=status.HTTP_201_CREATED)
        else:
            data = {"error": True, "errors": serializer.errors}

            return Response(data, status=status.HTTP_400_BAD_REQUEST)
Example #5
0
    def register_device(self, request):
        json_data = request.data if request.data else json.loads(request.body.decode('utf-8'))

        username = json_data['email']
        device = json_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:
                FCMDevice.objects.filter(registration_id = device).exclude(pk = fcm_d.pk).update(active = False)

                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)
Example #6
0
    def post(self, request):
        global device
        fcm = request.data.get("fcm_token")
        user = authenticate(email=request.data.get("email"),
                            password=request.data.get("password"))
        if user is not None:
            ser = UserShortInfoSerializer(user)
            fb = User.objects.get(id=user.id)
            print(ser.data['id'])
            try:
                devices = FCMDevice.objects.get(user=ser.data['id'])
            except FCMDevice.DoesNotExist:
                devices = None
            if devices is None:
                device = FCMDevice()
                device.user = user
                device.registration_id = fcm
                device.type = "Android"
                device.name = "Can be anything"
                device.save()
            else:
                devices.registration_id = fcm
                devices.save()
            try:
                token = Token.objects.get(user_id=user.id)
            except:
                token = Token.objects.create(user=user)
                print(token.key)
                print(user)

            return Response({
                "token": token.key,
                "device_id": device.registration_id,
                "error": False
            })
        else:
            data = {
                "error": True,
                "msg": "User does not exist or password is wrong"
            }

            return Response(data, status=status.HTTP_401_UNAUTHORIZED)
Example #7
0
def crud_device(request):
    """ CRUD Operation for FCM devices """
    if request.method == 'POST':
        print('call crud')
        if request.user.is_authenticated:
            print('authen')
            try:
                req_data = json.loads(request.body.decode())
                fcm_token = req_data['fcmtoken']
            except (KeyError, ValueError):
                return HttpResponseBadRequest()

            device = FCMDevice()
            # registration_id is a mandatory field and should be the FCM token!
            device.registration_id = fcm_token
            # Fields below are not mandatory anymore
            device.name = request.user.name
            device.user = request.user
            # TODO check if this can always be web (or need something like "mobile")
            device.type = "web"
            device.save()
            return HttpResponse(status=status.HTTP_201_CREATED)
        else:
            return HttpResponse(status=status.HTTP_401_UNAUTHORIZED)

    elif request.method == 'DELETE':
        if request.user.is_authenticated:
            try:
                fcm_token = json.loads(request.body.decode())['fcmtoken']
            except (KeyError, ValueError):
                return HttpResponseBadRequest()

            FCMDevice.objects.filter(registration_id=fcm_token).delete()
            return HttpResponse(status=status.HTTP_200_OK)
        else:
            return HttpResponse(status=status.HTTP_401_UNAUTHORIZED)

    else:
        return HttpResponseNotAllowed(['POST', 'DELETE'])
Example #8
0
 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)
Example #9
0
 def post(self, request):
     fcm = request.data.get("fcm_token")
     if fcm is None:
         return Response({
             "Message": "Please provide a fcm token",
             "error": True
         })
     email = None
     phone = None
     if 'email' in request.data:
         if request.data['email'] != "":
             email = request.data['email']
         else:
             pass
     if 'phone' in request.data:
         if request.data['phone'] != "":
             phone = request.data['phone']
         else:
             pass
     if email is None:
         if phone is None:
             return Response({
                 "Message": "Please enter email or phone no",
                 "error": True
             })
     # if email is not None:
     user = CustomAuthentication().authenticate(
         email=email, phone=phone, password=request.data.get("password"))
     # else:
     #     user = CustomAuthentication().authenticate(email=email,phone=phone,password=request.data.get("password"))
     if user is not None:
         ser = UserDetailSerializer(user)
         fb = User.objects.get(id=user.id)
         fb.fcm_token = fcm
         fb.save()
         try:
             devices = FCMDevice.objects.get(user=ser.data['id'])
         except FCMDevice.DoesNotExist:
             devices = None
         if devices is None:
             device = FCMDevice()
             device.user = user
             device.registration_id = fcm
             device.type = "Android"
             device.name = "Can be anything"
             device.save()
         else:
             devices.registration_id = fcm
             devices.save()
         role = ser.data['role']
         try:
             token = Token.objects.get(user_id=user.id)
         except:
             token = Token.objects.create(user=user)
         return Response({"token": token.key, "role": role, "error": False})
     else:
         data = {
             "error": True,
             "msg": "User does not exist or password is wrong"
         }
         return Response(data, status=status.HTTP_401_UNAUTHORIZED)