![]() | |
Lenovo LOQ Gaming 15IRX9 Intel Core i5Lenovo LOQ 15IRX9 83DV00A8ID - CI5-13450HX/12GB/512GB/RTX3050 6GB/15.6 FHD IPS/WIN11+OHS2021/LUNA GREY - FREE GIFT - MOUSE - BACKPACK - PERFORMANCE - Processor : Intel® Core™ i5-13450HX, 10C (6P + 4E) / 16T, P-core 2.4 / 4.6GHz, E-core 1.8 / 3.4GHz, 20MB Free Klik Disini ! |
Pada tutorial service OTP bagian ke-dua kita telah belajar tentang sequence diagram, dari sequence diagram kita telah mendapatkan garis besar service OTP yang akan kita buat.
Dibagian kedua ini kita akan mempelajari beberapa hal :
class Otpservice(CreateUpdate):
phone_number = models.CharField(max_length=35)
otp_number = models.IntegerField()
expired_unixtime = models.IntegerField()
validate = models.BooleanField(default=False)
Dari class model Otpservice(), dapat kita pelajari bahwa kita akan membuat table dengan field phone_number, otp_number, expired_unixtime, validate
class CreateOTPSerializer(serializers.Serializer):
phone_number = serializers.CharField(max_length=50)
class ValidateOTPSerializer(serializers.Serializer):
phone_number = serializers.CharField(max_length=50)
otp_number = serializers.CharField(max_length=50)
def create_expired_unixtime(expired=None):
if expired == None:
expired = 5
curent_time = datetime.now()
curent_unix_time = curent_time.timestamp()
expired_time = curent_unix_time + (expired * 60)
return expired_timedef generate_random_otp():
fixed_digits = 6
return random.randrange(111111, 999999, fixed_digits)
Code sample:
def test_create_otp_failed(self):
status, message = create_otp({})
self.assertEqual(status, False)
self.assertRaisesMessage(Exception, message)
Video makemigrations dan unit test:
github: https://github.com/halovina/otpservice/tree/model-serializers
Baca artikel lainya: