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 :
A) Class model OTP Perhatikan kode berikut:
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
B) Class Serializer Selanjutnya buat class serializer yang akan digunakan untuk membuat OTP dan memvalidasi OTP.
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)
C) Fungsi Random dan Validate OTP Dibagian ini buat fungsi untuk membuat kode otp dalam bentuk integer dengan panjang 6 karakter, dan juga buat fungsi untuk memvalidasi kode OTP .
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_time
def generate_random_otp(): fixed_digits = 6 return random.randrange(111111, 999999, fixed_digits)
D) Unit Test Saatnya kita menguji logika kode yang sudah kita buat dengan django unit test.
Code sample:
def test_create_otp_failed(self): status, message = create_otp({}) self.assertEqual(status, False) self.assertRaisesMessage(Exception, message)
E) Video Tutorial Video models dan serializer :
VIDEO
Video makemigrations dan unit test:
VIDEO
github : https://github.com/halovina/otpservice/tree/model-serializers
Baca artikel lainya:
Membuat service user login bagian 1 - Konfigurasi Database Membuat service user login bagian 2 - Serializer dan JWT Membuat CRUD service product bagian 1 - Models Product Membuat CRUD service product bagian 2 - Function Serializer Membuat CRUD service product bagian 3 - Api Client Service Membaut CRUD service product bagian 4 - Auth User Membuat CRUD service product bagian 5 - TDR File Log Membuat CRUD service product bagian 6 - Unit Test Membuat service user register bagian 1 - Django Membuat Service user register bagian 2 - Django Membuat service filter dan download file CSV di django Django upload file menggunakan FileSystemStorage Tips meningkatkan kualitas code pada bahasa python Cara memfilter tipe data string pada golang dan python Mengubah format datetime pada bahasa python Mengolah data CSV dengan python pandas Sample join data CSV di python menggunakan pandas Menggunakan redis PUB/SUB untuk aplikasi python Implementasi blockchain ethereum pada industri real estate 4 Cara mengubah dictionary ke json pada python