first commit
This commit is contained in:
commit
3e4574dcdd
163 files changed
+3559
No files matched your search
Whitespace-only changes.
@@ -0,0 +1,9 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class BaseModel(models.Model):
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
@@ -0,0 +1,6 @@
|
||||
from rest_framework.pagination import PageNumberPagination
|
||||
|
||||
class OrderViewPagination(PageNumberPagination):
|
||||
page_size = 200
|
||||
page_size_query_param = 'page_size'
|
||||
max_page_size = 10000
|
||||
Whitespace-only changes.
@@ -0,0 +1,32 @@
|
||||
from abc import ABC, abstractmethod
|
||||
import requests
|
||||
|
||||
|
||||
class SmsProviderABC(ABC):
|
||||
@abstractmethod
|
||||
def send_sms(self, mobile: str, message: str) -> bool:
|
||||
pass
|
||||
|
||||
|
||||
class DefaultSmsProvider(SmsProviderABC):
|
||||
def send_sms(self, mobile: str, message: str) -> bool:
|
||||
default_provider = DosefrNavadHashtSMS()
|
||||
return default_provider.send_sms(mobile, message)
|
||||
|
||||
|
||||
class DosefrNavadHashtSMS(SmsProviderABC):
|
||||
def send_sms(self, mobile: str, message: str) -> bool:
|
||||
payload = {
|
||||
'USERNAME': 'vsms7937',
|
||||
'PASSWORD': '335577775533',
|
||||
'FROM': '30005367',
|
||||
'TO': int(mobile),
|
||||
'TEXT': f'{message}'
|
||||
}
|
||||
r = requests.get('http://www.0098sms.com/sendsmslink.aspx', params=payload)
|
||||
|
||||
if r.status_code == 200:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from celery import shared_task
|
||||
from utils.services.sms import DefaultSmsProvider
|
||||
|
||||
|
||||
@shared_task
|
||||
def task_send_sms(message: str, mobile):
|
||||
sms_provider = DefaultSmsProvider()
|
||||
sms_provider.send_sms(mobile=str(mobile), message=str(message))
|
||||
@@ -0,0 +1,7 @@
|
||||
from rest_framework.pagination import PageNumberPagination
|
||||
|
||||
|
||||
class StandardPagination(PageNumberPagination):
|
||||
page_size = 10
|
||||
page_size_query_param = 'page_size'
|
||||
max_page_size = 10000
|
||||
Whitespace-only changes.
@@ -0,0 +1,18 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
def create_serializer_class(name, fields):
|
||||
return type(name, (serializers.Serializer,), fields)
|
||||
|
||||
|
||||
def inline_serializer(*, fields, data=None, **kwargs):
|
||||
# Important note if you are using `drf-spectacular`
|
||||
# Please refer to the following issue:
|
||||
# https://github.com/HackSoftware/Django-Styleguide/issues/105#issuecomment-1669468898
|
||||
# Since you might need to use unique names (uuids) for each inline serializer
|
||||
serializer_class = create_serializer_class(name="inline_serializer", fields=fields)
|
||||
|
||||
if data is not None:
|
||||
return serializer_class(data=data, **kwargs)
|
||||
|
||||
return serializer_class(**kwargs)
|
||||
Reference in new issue
Block a user