Method account.register fix
This commit is contained in:
@@ -18,7 +18,7 @@ API_ERROR_INVALID_PASSWORD = (502, 'invalid password')
|
||||
API_ERROR_INVALID_TOKEN = (503, 'invalid token')
|
||||
|
||||
# времненное решение, позже нужно будет заменить на конкретные ошибки
|
||||
API_ERROR_USER_REGISTER = (510, 'user register error')
|
||||
API_ERROR_USER_REGISTER = (510, 'user registration error')
|
||||
|
||||
|
||||
def make_error_object(ex: Exception):
|
||||
|
@@ -1,7 +1,9 @@
|
||||
from .api_errors import *
|
||||
import traceback
|
||||
|
||||
import account.models
|
||||
from .api_utils import *
|
||||
from .models import *
|
||||
from account.forms import UserCreationForm
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
|
||||
def _reqire_access_token(params):
|
||||
@@ -29,20 +31,30 @@ def account_register(params):
|
||||
email = api_get_param_str(params, "email")
|
||||
password = api_get_param_str(params, "password")
|
||||
|
||||
form = UserCreationForm({
|
||||
"email": email,
|
||||
"phone": phone,
|
||||
"name": name,
|
||||
"surname": surname,
|
||||
"password1": password,
|
||||
"password2": password,
|
||||
})
|
||||
user = account.models.SiteUser(
|
||||
name=name,
|
||||
surname=surname,
|
||||
phone=phone,
|
||||
email=email,
|
||||
password=password
|
||||
)
|
||||
|
||||
form.validate_unique()
|
||||
if form.is_valid():
|
||||
pass
|
||||
else:
|
||||
raise Exception(API_ERROR_MISSING_ARGUMENT)
|
||||
try:
|
||||
user.full_clean()
|
||||
user.save()
|
||||
|
||||
try:
|
||||
token = UserToken.create_token(user)
|
||||
return make_response({"access_token": token.access_token})
|
||||
|
||||
except Exception as ex:
|
||||
# если вдруг токен нельзя создать
|
||||
user.delete()
|
||||
raise ex
|
||||
|
||||
except ValidationError as e:
|
||||
traceback.print_exc()
|
||||
raise Exception(API_ERROR_USER_REGISTER, e.messages)
|
||||
|
||||
|
||||
def account_get(params):
|
||||
|
Reference in New Issue
Block a user