Skip to content
This repository was archived by the owner on Aug 29, 2023. It is now read-only.

Commit 684b178

Browse files
Changes made to the policy of the minimum withdraw
1 parent 3018bc8 commit 684b178

File tree

8 files changed

+72
-10
lines changed

8 files changed

+72
-10
lines changed
176 Bytes
Binary file not shown.
142 Bytes
Binary file not shown.
761 Bytes
Binary file not shown.

Profile/admin.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@ class TransactionAdmin(admin.ModelAdmin):
1313

1414

1515
admin.site.register(Referral)
16-
admin.site.register(RecentEarnings)
16+
17+
class RecentEarningsAdmin(admin.ModelAdmin):
18+
list_display = ['user', 'way_to_earn', 'point_earned', 'created_at']
19+
list_filter = ['user']
20+
21+
admin.site.register(RecentEarnings, RecentEarningsAdmin)
1722
admin.site.register(ResetPassword)
1823
admin.site.register(SocialAccount)
1924
admin.site.register(HelpCenter)

Profile/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ class ResetPassword(models.Model):
100100

101101
def __str__(self) -> str:
102102
return f"{self.user.username} requested pin that is {self.pin}"
103+
104+
105+
106+
class VerifyUser(models.Model):
107+
pass
108+
# user = models.ForeignKey(User, on_delete=models.CASCADE)
109+
# pin = models.CharField(max_length=4, null=False, blank=False, default=1)
110+
# created_at = models.DateTimeField(auto_now_add=True)
111+
112+
# def __str__(self) -> str:
113+
# return f"{self.user.username} requested pin that is {self.pin}"
114+
103115

104116
class SocialAccount(models.Model):
105117
user = models.ForeignKey(User, on_delete=models.CASCADE)

Profile/views.py

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from rest_framework import viewsets, status
33
from rest_framework.response import Response
44
from .serializers import CreateTransactionSerializer, HelpCenterSerializer, PaymentInfoSerializer, ProfileSerializer, RecentEarningsSerializer, UserSerializer, TransactionSerializer, ReferralSerializer, GetReferralSerializer, ForgotPasswordSerializer, ForgotPasswordCheckPinSerializer, UserResetPassword, SocialAccountSerializer, generate_username, UserStatsSerializer, ProfileImageSerializer
5-
from .models import HelpCenter, ResetPassword, Transaction, Referral, Wallet, Profile, RecentEarnings, SocialAccount
5+
from .models import HelpCenter, ResetPassword, Transaction, Referral, Wallet, Profile, RecentEarnings, SocialAccount, VerifyUser
66
from django.contrib.auth import authenticate, get_user_model
77
from rest_framework.permissions import IsAuthenticated
88
from rest_framework.authentication import TokenAuthentication
@@ -79,7 +79,7 @@ def create(self, request, *args, **kwargs):
7979
user = User.objects.get(pk=serializer.data['id'])
8080
user.is_active = False
8181
user.save()
82-
send_email(user)
82+
SendVerificationEmail(user.get_username(), user.email)
8383

8484
# Save device_id in Profile model
8585
profile = Profile.objects.get(user=user)
@@ -163,7 +163,7 @@ def post(self, request, format=None):
163163
referrer_wallet.save()
164164

165165
#Writing the earning history from database
166-
referrer_earning = RecentEarnings.objects.create(user=current_user, way_to_earn="Referral Points", point_earned=50)
166+
referrer_earning = RecentEarnings.objects.create(user=current_user, way_to_earn="Referral Points", point_earned=100)
167167
referrer_earning.save()
168168

169169

@@ -237,6 +237,43 @@ def get(self, request, format=None):
237237
referrals = Referral.objects.filter(code=request.user.profile.user_code)
238238
serializer = GetReferralSerializer(referrals, many=True)
239239
return Response(serializer.data)
240+
241+
242+
def SendVerificationEmail(username, email):
243+
#Deleting all the objects that are old than 15 mins
244+
VerifyUser.objects.filter(created_at__lte=timezone.now() - timezone.timedelta(minutes=15)).delete()
245+
246+
# Check if there is an existing ResetPassword object for the user
247+
verify_user = VerifyUser.objects.filter(user=User.objects.get(username=username)).first()
248+
249+
# If there is an existing ResetPassword object and it was created less than 15 minutes ago, return an error
250+
if verify_user and timezone.now() < verify_user.created_at + timezone.timedelta(minutes=15):
251+
time_diff = (verify_user.created_at + timezone.timedelta(minutes=15) - timezone.now()).seconds // 60
252+
return Response({'message': f'Please wait {time_diff} minutes before requesting a new PIN.'}, status=status.HTTP_400_BAD_REQUEST)
253+
254+
255+
# Generate a new PIN and create a new ResetPassword object for the user
256+
pin = get_random_string(length=4, allowed_chars='1234567890')
257+
verify_user_object = VerifyUser.objects.create(user=User.objects.get(username=username), pin=pin)
258+
verify_user_object.save()
259+
260+
#Sending the Email
261+
262+
context = {"username" : User.objects.get(email=email).username, "pin": pin}
263+
email_body = render_to_string('mail/forget_email.html', context)
264+
265+
email = EmailMessage(
266+
'Password Reset for Zolo Earn App',
267+
email_body,
268+
'zoloearn.llc@gmail.com',
269+
to=[email]
270+
)
271+
272+
email.content_subtype = 'html'
273+
email.send()
274+
275+
276+
240277

241278

242279
class ForgotPasswordView(APIView):
@@ -537,7 +574,7 @@ def post(self, request):
537574

538575
if userProfile.new_user:
539576
if userWallet.points >= userAmount:
540-
if userAmount >= 2000:
577+
if userAmount >= 5000:
541578
userWallet.points -= userAmount
542579
#Set new user to false
543580
userProfile.new_user = False
@@ -561,7 +598,7 @@ def post(self, request):
561598
serializer.save(user=user)
562599
return Response({"message":"Withdrawal Successful"}, status=status.HTTP_200_OK)
563600
else:
564-
return Response({"message":"Points Less Than Minimum Withdraw"}, status=status.HTTP_400_BAD_REQUEST)
601+
return Response({"message":"Points Less Than Minimum Withdraw (Changes Made Recently)"}, status=status.HTTP_400_BAD_REQUEST)
565602
else:
566603
return Response({"message":"Not Enough Points In Wallet"}, status=status.HTTP_400_BAD_REQUEST)
567604

@@ -621,7 +658,7 @@ def post(self, request):
621658

622659
class VersionCheck(APIView):
623660
def get(self, request, *args, **kwargs):
624-
latest_version = "2.1"
661+
latest_version = "2.2"
625662
return Response({"message": latest_version})
626663

627664

37 Bytes
Binary file not shown.

rewards/views.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,18 @@ def post(self, request, *args, **kwargs):
238238

239239
#TTC Object
240240
userTTCObject = TickTacToe.objects.get(user=user)
241-
userTTCObject.turn_available -= 1
242-
userTTCObject.save()
243241

244-
return Response({"message":"User Lost A Game"}, status=status.HTTP_400_BAD_REQUEST)
242+
if userTTCObject.turn_available == 0:
243+
return Response({"message":"User Lost A Game"}, status=status.HTTP_400_BAD_REQUEST)
244+
else:
245+
userTTCObject.turn_available -= 1
246+
userTTCObject.save()
247+
return Response({"message":"User Lost A Game"}, status=status.HTTP_400_BAD_REQUEST)
248+
249+
250+
251+
252+
245253

246254

247255

0 commit comments

Comments
 (0)