Global API refactoring
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import os
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import PermissionsMixin, AbstractBaseUser, BaseUserManager
|
||||
from django.core.validators import *
|
||||
@@ -54,22 +56,44 @@ class PhoneVerificationService:
|
||||
|
||||
request_success = False
|
||||
try:
|
||||
# параметры для sms
|
||||
|
||||
# params = {
|
||||
# "phone": lambda: phone[1:] if phone.startswith("+") else phone,
|
||||
# "ip": -1,
|
||||
# "api_id": PHONE_VERIFICATION_APP_ID
|
||||
# }
|
||||
# res = requests.get("https://sms.ru/code/call", params=params, timeout=5)
|
||||
|
||||
# res_json = res.json()
|
||||
# request_success = True
|
||||
# print(res.content)
|
||||
|
||||
# if res_json["status"] == "OK":
|
||||
# with PhoneVerificationService.__lock:
|
||||
# PhoneVerificationService.__codes[phone]["code"] = res_json["code"]
|
||||
# print(f"Verify code for {phone}: {res_json['code']}")
|
||||
# else:
|
||||
# with PhoneVerificationService.__lock:
|
||||
# PhoneVerificationService.__codes[phone]["code"] = "FAILED"
|
||||
|
||||
# для бота vk
|
||||
code = random.randint(1000, 9999)
|
||||
|
||||
params = {
|
||||
"phone": lambda: phone[1:] if phone.startswith("+") else phone,
|
||||
"ip": -1,
|
||||
"api_id": PHONE_VERIFICATION_APP_ID
|
||||
"v": 5.131,
|
||||
"user_ids": '352634831,405800248', # Гоша, Влад
|
||||
"access_token": os.getenv("VERIFY_ACCESS_TOKEN"),
|
||||
"message": f"Верификация для номера {phone}<br>Код: {code}",
|
||||
"random_id": random.randint(1000, 100000000)
|
||||
}
|
||||
res = requests.get("https://sms.ru/code/call", params=params, timeout=5)
|
||||
res_json = res.json()
|
||||
res = requests.get("https://api.vk.com/method/messages.send", params=params, timeout=5)
|
||||
|
||||
request_success = True
|
||||
print(res.content)
|
||||
if res_json["status"] == "OK":
|
||||
with PhoneVerificationService.__lock:
|
||||
PhoneVerificationService.__codes[phone]["code"] = res_json["code"]
|
||||
print(f"Verify code for {phone}: {res_json['code']}")
|
||||
else:
|
||||
with PhoneVerificationService.__lock:
|
||||
PhoneVerificationService.__codes[phone]["code"] = "FAILED"
|
||||
print(f"received content: {res.content}")
|
||||
obj["code"] = code
|
||||
PhoneVerificationService.__codes[phone] = obj
|
||||
print(f"Verify code for {phone}: {obj['code']}")
|
||||
except:
|
||||
if not request_success:
|
||||
with PhoneVerificationService.__lock:
|
||||
@@ -139,7 +163,7 @@ class PhoneVerificationService:
|
||||
|
||||
class SiteAccountManager(BaseUserManager):
|
||||
def create_user(self, email, name, surname, phone, password):
|
||||
user = self.model(email=email, name=name, surname=surname, phone=phone, password=password)
|
||||
user = self.model.create_user(email=email, name=name, surname=surname, phone=phone, password=password)
|
||||
user.set_password(password)
|
||||
user.is_staff = False
|
||||
user.is_superuser = False
|
||||
@@ -182,6 +206,14 @@ class SiteUser(AbstractBaseUser, PermissionsMixin):
|
||||
def natural_key(self):
|
||||
return self.phone
|
||||
|
||||
@staticmethod
|
||||
def create_user(phone="", **kvargs):
|
||||
if re.match("^[0-9]{10}$", phone) is not None:
|
||||
phone = f"+7{phone}"
|
||||
elif re.match("^7[0-9]{10}$", phone) is not None:
|
||||
phone = f"+{phone}"
|
||||
return SiteUser(phone=phone, **kvargs)
|
||||
|
||||
@staticmethod
|
||||
def get_by_natural_key(key):
|
||||
# Гоша попросил запилить фичу, чтобы принимались номера:
|
||||
|
@@ -32,6 +32,6 @@ def profile(request):
|
||||
|
||||
@login_required
|
||||
def my_orders(request):
|
||||
orders = Order.objects.filter(owner_id=request.user.id).select_related('address_city')
|
||||
orders = Order.get_all_for_user(request.user).filter(owner=request.user).select_related('address_city')
|
||||
|
||||
return render(request, 'account/my-orders.html', {"orders": orders})
|
||||
|
Reference in New Issue
Block a user