Membuat Service OTP Django Mysql Bagian 3 - Model dan Serializer

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Membuat Service OTP Django Mysql Bagian 3 - Model dan Serializer
Kels 10 M2 Levi Air Purifier Portabel Cadr 40 M3/jam - Putih

Kels 10 M2 Levi Air Purifier Portabel Cadr 40 M3/jam - Putih

Miliki kesegaran udara di dalam ruangan dengan menggunakan Levi Portable Air Purifier persembahan dari Kels. Air purifier ini memiliki jangkauan area filtrasi mencapai 10 meter yang mampu menyerap partikel udara kotor dan menggantinya dengan udara yang lebih bersih. Memiliki filtrasi dengan filter HEPA 13 dan 1 lapisan tambahan untuk memaksimalkan filtrasi udara dari kotoran hingga 99.97%.

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 :

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 makemigrations dan unit test:

githubhttps://github.com/halovina/otpservice/tree/model-serializers

Baca artikel lainya:


  1. Membuat service user login bagian 1 - Konfigurasi Database

  2. Membuat service user login bagian 2 - Serializer dan JWT

  3. Membuat CRUD service product bagian 1 - Models Product

  4. Membuat CRUD service product bagian 2 - Function Serializer

  5. Membuat CRUD service product bagian 3 - Api Client Service

  6. Membaut CRUD service product bagian 4 - Auth User

  7. Membuat CRUD service product bagian 5 - TDR File Log

  8. Membuat CRUD service product bagian 6 - Unit Test

  9. Membuat service user register bagian 1 - Django

  10. Membuat Service user register bagian 2 - Django

  11. Membuat service filter dan download file CSV di django

  12. Django upload file menggunakan FileSystemStorage

  13. Tips meningkatkan kualitas code pada bahasa python

  14. Cara memfilter tipe data string pada golang dan python

  15. Mengubah format datetime pada bahasa python

  16. Mengolah data CSV dengan python pandas

  17. Sample join data CSV di python menggunakan pandas

  18. Menggunakan redis PUB/SUB untuk aplikasi python

  19. Implementasi blockchain ethereum pada industri real estate

  20. 4 Cara mengubah dictionary ke json pada python