Пример #1
0
 def post(self, request):
     print "requesttttt",request.META["HTTP_YOO_DEVICE_ID"]
     data = json.loads(request.body)
     print data
     email = data['email']
     password = data['password']
     email_source = data['email_source']
     user = None
     try:
         if email_source == "app":
             user = YooLottoUser.objects.get(email=email)
     except:
         raise exceptions.WebServiceException("This email Id is not registered with the Yoolotto")
     if email_source == "twitter" or email_source == "facebook":
         try:
            user = YooLottoUser.objects.get(email=email) 
         except:
             user = YooLottoUser(email = email)
             user.save()
     if email_source == "app":        
         if hashers.check_password(password, user.password):
             email_coins,created = EmailCoins.objects.get_or_create(email = data['email'],defaults={"coins":1})
             request.yoo["user"] = user
         #_device = Device.objects.filter(device_id=request.META["HTTP_YOO_DEVICE_ID"])[0]
             print "tc",email_coins.coins
             return {"total_coins": email_coins.coins,"success":True}
         else:
             raise exceptions.WebServiceException("Invalid Password")   
     else:
         if email_source == "twitter":
             email_coins,created = EmailCoins.objects.get_or_create(email = data['email'],defaults={"coins":1})
         elif email_source == "facebook":
             email_coins,created = EmailCoins.objects.get_or_create(email = data['email'],defaults={"coins":1.5})
         print "tc",email_coins.coins
     return {"success": True,"total_coins": email_coins.coins}
Пример #2
0
 def post(self,request):
     user_data = json.loads(request.body)
           
     try:
         user = YooLottoUser(name=user_data['user_name'],email=user_data['email'],password=hashers.make_password(user_data['password']),email_source = "app")
         user.save()
         
         user_details = UserDetails(user=user,phone=user_data['phone'],address=user_data['address'])
         user_details.save()
         
         return {"email":user.email,"user_name":user.name,"phone":user_details.phone,"address":user_details.address,"id":user.id}
     except IntegrityError:
         raise exceptions.WebServiceException("Email already exist.")
Пример #3
0
        def wrapped(*args, **kwargs):
            request = args[1]
            if request.META["HTTP_YOO_APP_VERSION"] >= "5.1":
                
                if not isinstance(request, WSGIRequest):
                    raise RuntimeError("Invalid Request Object")
                
                if "HTTP_YOO_DEVICE_ID" not in request.META:
                    raise WebServiceAuthenticationFailed()
                hashstring = hashlib.sha1("@#!" + request.META['HTTP_YOO_EMAIL_ID'] + "yoolottospa").hexdigest()
                #print type(request.META["HTTP_YOO_AUTH_TOKEN"])
                #print type(hashstring)
                if hashstring != request.META["HTTP_YOO_AUTH_TOKEN"]:
                    raise WebServiceAuthenticationFailed()
                required_user = YooLottoUser.objects.get(email = request.META['HTTP_YOO_EMAIL_ID'])
                request.yoo["new_version"] = False
                request.yoo["user"] = required_user
                enum_old_version = {"IPHONE":3.0,"ANDROID":3.6}
                old_version = enum_old_version[request.META["HTTP_YOO_DEVICE_TYPE"]]
                
                if str(request.META["HTTP_YOO_APP_VERSION"]) > str(old_version):
                    request.yoo["new_version"] = True
                print "the user is ", request.yoo["user"].id        
                try:
                    device, created = Device.objects.get_or_create(device_id=request.META["HTTP_YOO_DEVICE_ID"], user = request.yoo["user"])                
                except IntegrityError:
                    time.sleep(0.05)
                    device = Device.objects.filter(device_id=request.META["HTTP_YOO_DEVICE_ID"], user = request.yoo["user"])[0]

                device.device_type = request.META.get("HTTP_YOO_DEVICE_TYPE", None)
                device.app_version = request.META.get("HTTP_YOO_APP_VERSION", None)
                device.os_version = request.META.get("HTTP_YOO_OS_VERSION", None)
                
                if not device.device_type:
                    device.device_type = "UNKNOWN"
                        
                request.yoo["device"] = device
                request.yoo["auth"]["success"] = True
                device.save()
                            
                return fn(*args, **kwargs)
            else:
                if not isinstance(request, WSGIRequest):
                    raise RuntimeError("Invalid Request Object")
                
                if "HTTP_YOO_DEVICE_ID" not in request.META:
                    raise WebServiceAuthenticationFailed()
                
                if request.META["HTTP_YOO_DEVICE_ID"] == self.INVALID_IOS7_DEVICE_ID:
                    request.yoo["device"] = None
                    request.yoo["user"] = None
                    request.yoo["auth"]["success"] = False
                    request.yoo["auth"]["__internal__reject__"] = True
                    
                    return fn(*args, **kwargs)

                request.yoo["new_version"] = False

                enum_old_version = {"IPHONE":3.0,"ANDROID":3.6}
                old_version = enum_old_version[request.META["HTTP_YOO_DEVICE_TYPE"]]
                
                if str(request.META["HTTP_YOO_APP_VERSION"]) > str(old_version):
                    request.yoo["new_version"] = True
                        
                try:
                    device = Device.objects.filter(device_id=request.META["HTTP_YOO_DEVICE_ID"])[0]               
                except:
                    if not self._create:
                        raise WebServiceAuthenticationFailed()
                    else:
                        user = YooLottoUser()
                        user.save()
                        
                        device = Device(user=user, device_id=request.META["HTTP_YOO_DEVICE_ID"])
                
                device.device_type = request.META.get("HTTP_YOO_DEVICE_TYPE", None)
                device.app_version = request.META.get("HTTP_YOO_APP_VERSION", None)
                device.os_version = request.META.get("HTTP_YOO_OS_VERSION", None)
                
                if not device.device_type:
                    device.device_type = "UNKNOWN"
                
                try:
                    device.save()
                except IntegrityError:
                    try:
                        time.sleep(0.05)
                        _device = Device.objects.get(device_id=request.META["HTTP_YOO_DEVICE_ID"])
                    except Device.DoesNotExist:
                        device.save()
                    else:
                        device = _device
                        
                request.yoo["device"] = device
                request.yoo["user"] = device.user
                request.yoo["auth"]["success"] = True
                            
                return fn(*args, **kwargs)