Membuat Service OTP Django Mysql Bagian 3 - Model dan Serializer

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Membuat Service OTP Django Mysql Bagian 3 - Model dan Serializer

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