diff --git a/api/api_methods.py b/api/api_methods.py index 46e3295..63c55d3 100755 --- a/api/api_methods.py +++ b/api/api_methods.py @@ -5,6 +5,7 @@ from datetime import date as dt from .api_media_utils import * from .api_utils import * from .models import * +from arka.settings import CITIES_CHOICES, CITIES_CHOICES_DICT def _make_model_validation_errors(validation_error: ValidationError, api_err=API_ERROR_OBJECT_VALIDATION): @@ -47,14 +48,15 @@ class ApiAccount: "id": user.id, "name": user.name, "surname": user.surname, - "phone": user.phone, - "email": user.email, "about": user.about, - "city": {"code": user.city, "name": CITIES_CHOICES[user.city]} if user.city is not None else None, + "city": {"code": user.city, "name": CITIES_CHOICES_DICT[user.city]} if user.city is not None else None, "register_datetime": int(time.mktime(user.register_datetime.timetuple())), "role": user.role, "verified": user.verified } + if self_using: + obj["phone"] = user.phone + obj["email"] = user.email if hasattr(user, 'accountavatar'): obj["avatar"] = user.accountavatar.photo.id if user.accountavatar.photo is not None else None @@ -188,7 +190,7 @@ class ApiAccount: ApiParamStr(name="executor_inn", required=False, regex="^(\\d{12}|\\d{10})$", description="ИНН исполнителя (только для роли исполнитель): " "12 цифр если исполнитель - физ.лицо и 10 цифр если это юр. лицо"), - ApiParamEnum(name="city", description="Город, в котором находится ползователь: {choices}", + ApiParamEnum(name="city", description="Город, в котором находится пользователь: {choices}", required=False, choices=CITIES_CHOICES), ApiParamInt(name="photo", required=False, default=None, description="ID медиа, которое будет использоваться в качестве фото профиля, " @@ -432,7 +434,7 @@ class ApiSecurity: ApiParamPassword(description="Пароль пользователя, нужен для подтверждения личности"), ApiParamInt(name="session", description="ID сессии, которую надо деактивировать", value_min=0) ], - returns="Вернет стандартный отъект в случае успеха") + returns="Вернет стандартный объект в случае успеха") async def remove_session(access_token, password, session): if not access_token.user.check_password(password): raise Exception(API_ERROR_INVALID_PASSWORD) diff --git a/api/models.py b/api/models.py index e59c2ce..ab371c4 100755 --- a/api/models.py +++ b/api/models.py @@ -8,7 +8,7 @@ from hashlib import sha512, sha256 from django.db.models import Q -from arka.settings import CITIES_CHOICES, CITIES_FIELD_SIZE +from arka.settings import CITIES_CHOICES, CITIES_CHOICES_DICT, CITIES_FIELD_SIZE from .api_errors import * import re diff --git a/arka/settings.py b/arka/settings.py index 05d5c33..0296919 100755 --- a/arka/settings.py +++ b/arka/settings.py @@ -153,7 +153,9 @@ PHONE_VERIFICATION_ACCESS_KEY = os.getenv('PHONE_VERIFICATION_ACCESS_KEY', "EMPT # настройки выбора городов with open('config/cities.json') as f: - CITIES_CHOICES = json.load(f) - for i in range(0, len(CITIES_CHOICES)): - CITIES_CHOICES[i] = tuple(CITIES_CHOICES[i]) + __tmp = json.load(f) + CITIES_CHOICES = [] + CITIES_CHOICES_DICT = __tmp['dict'] + for i in range(0, len(__tmp['choices'])): + CITIES_CHOICES.append(tuple(__tmp['choices'][i])) CITIES_FIELD_SIZE = 16 diff --git a/config/cities.json b/config/cities.json index ad11797..7d31985 100644 --- a/config/cities.json +++ b/config/cities.json @@ -1,6 +1,14 @@ -[ - ["moscow", "Москва"], - ["mytishchi", "Мытищи"], - ["belgorod", "Белгород"], - ["orel", "Орел"] -] \ No newline at end of file +{ + "choices": [ + ["moscow", "Москва"], + ["mytishchi", "Мытищи"], + ["belgorod", "Белгород"], + ["orel", "Орел"] + ], + "dict": { + "moscow": "Москва", + "mytishchi": "Мытищи", + "belgorod": "Белгород", + "orel": "Орел" + } +} \ No newline at end of file