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}
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.")
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)