Skip to content

Commit 1847bac

Browse files
Merge branch 'master' of github.com:CuriousLearner/django-phone-verify into SepehrHasanabadi-kavenegar-api
* 'master' of github.com:CuriousLearner/django-phone-verify: chore(deps-dev): Bump django from 2.1.11 to 2.2.10 in /requirements (#36) fix(backends): Emit `post_save` signal on phone number verification (#29)
2 parents 7f2e976 + 656843d commit 1847bac

File tree

5 files changed

+33
-7
lines changed

5 files changed

+33
-7
lines changed

README.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ Added
120120
- Support ``Nexmo`` as a backend service alongwith ``Twilio``.
121121
- Add docs for writing custom backend.
122122

123+
Changed
124+
"""""""
125+
126+
- Update ``backends.base.BaseBackend.validate_security_code`` to use ``save()`` instead of ``update()`` to allow Django to emit its ``post_save()`` signal.
127+
123128
[1.0.0]
124129
^^^^^^^
125130

docs/usage.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,27 @@ This is the case when you choose to integrate your user registration process wit
200200
Otherwise, serializer classes for ``verify`` and ``register`` views will not be available.
201201

202202
3. Latest ``security_code`` generated for a ``phone_number`` can be found at ``/admin/phone_verify/smsverification/`` URL.
203+
204+
4. Django's ``post_save`` signal can be leveraged through its usage in ``phone_verify.models.SMSVerification`` function. Additional functionality can be hooked via the ``post_save`` signal by creating the following receiver.
205+
206+
.. code-block:: python
207+
208+
# In signals.py
209+
from phone_verify.models import SMSVerification
210+
from django.db.models.signals import post_save
211+
from django.dispatch import receiver
212+
from django.core.mail import send_mail
213+
214+
215+
# `send_phone_verify_email` function will get fired when a new entry is created or the model instance is updated
216+
@receiver(post_save, sender=SMSVerification)
217+
def send_phone_verify_email(sender, instance=None, created=None, **kwargs):
218+
# Check if the instance is created or not
219+
if created:
220+
send_mail(
221+
subject='Subject here',
222+
message='Here is the message.',
223+
from_email='[email protected]',
224+
recipient_list=['[email protected]'],
225+
fail_silently=False,
226+
)

phone_verify/backends/base.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,7 @@ def validate_security_code(self, security_code, phone_number, session_token):
132132
return stored_verification, self.SECURITY_CODE_VERIFIED
133133

134134
# mark security_code as verified
135-
stored_verification = SMSVerification.objects.filter(
136-
security_code=security_code,
137-
phone_number=phone_number,
138-
session_token=session_token,
139-
).update(is_verified=True)
135+
stored_verification.is_verified = True
136+
stored_verification.save()
140137

141138
return stored_verification, self.SECURITY_CODE_VALID

requirements/development.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# Core Stuff
55
# -------------------------------------
6-
Django==2.1.11
6+
Django==2.2.10
77
djangorestframework==3.9.1
88

99
# Code quality

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ python =
1111
[testenv]
1212
usedevelop = True
1313
deps =
14-
-rrequirements/testing.txt
14+
-r requirements/testing.txt
1515
django20: Django>=2.0,<2.1
1616
django21: Django>=2.1,<2.2
1717
django22: Django>=2.2a1,<3.0

0 commit comments

Comments
 (0)