Стабильная версия API
This commit is contained in:
parent
c757646354
commit
1a6f2d578e
@ -221,6 +221,10 @@ class ApiOrder:
|
||||
]
|
||||
})
|
||||
|
||||
@staticmethod
|
||||
def create(self):
|
||||
pass
|
||||
|
||||
|
||||
def api_call_method(method_name, params: dict):
|
||||
try:
|
||||
@ -237,10 +241,30 @@ def api_call_method(method_name, params: dict):
|
||||
|
||||
|
||||
def api_get_documentation():
|
||||
# {
|
||||
# "name": p["name"],
|
||||
# "type": p["type"],
|
||||
# "description": p["description"],
|
||||
# "required": p["required"]
|
||||
# }
|
||||
return []
|
||||
def _translate_type(t):
|
||||
_types = {
|
||||
str: "str",
|
||||
int: "int",
|
||||
UserToken: "token"
|
||||
}
|
||||
if t in _types:
|
||||
return _types[t]
|
||||
else:
|
||||
return str(t)
|
||||
|
||||
out = []
|
||||
for m in api_methods_dict:
|
||||
out.append({
|
||||
"name": m,
|
||||
"doc": api_methods_dict[m]["doc"],
|
||||
"returns": api_methods_dict[m]["returns"],
|
||||
"params": [
|
||||
{
|
||||
"name": p["name"],
|
||||
"type": _translate_type(p["type"]),
|
||||
"description": p["description"],
|
||||
"required": p["required"]
|
||||
} for p in api_methods_dict[m]["params"]
|
||||
]
|
||||
})
|
||||
return out
|
||||
|
@ -36,8 +36,8 @@ def api_get_param_str(params: dict, name: str, required=True, default=""):
|
||||
|
||||
|
||||
def api_get_access_token(params: dict, unused_name, required=True):
|
||||
token = api_get_param_str(params, "access_token", required)[0]
|
||||
print(f"checking token '{token}'")
|
||||
token = api_get_param_str(params, "access_token", required)
|
||||
# print(f"checking token '{token}'")
|
||||
return UserToken.get_by_token(token)
|
||||
|
||||
|
||||
@ -93,7 +93,7 @@ def api_method(func_name, doc="", params: list or None = None, returns=""):
|
||||
"doc": doc,
|
||||
"params": params,
|
||||
"func": wrapper,
|
||||
"return": returns
|
||||
"returns": returns
|
||||
}
|
||||
return wrapper
|
||||
|
||||
|
18
api/views.py
18
api/views.py
@ -8,16 +8,6 @@ from .api_errors import *
|
||||
|
||||
|
||||
def view_methods(request):
|
||||
methods = []
|
||||
|
||||
def __make_param(p):
|
||||
return {
|
||||
"name": p["name"],
|
||||
"type": p["type"],
|
||||
"description": p["description"],
|
||||
"required": p["required"]
|
||||
}
|
||||
|
||||
methods = api_get_documentation()
|
||||
return render(request, 'api/index.html', {'api_methods': methods})
|
||||
|
||||
@ -29,9 +19,13 @@ def call_method(request, method_name):
|
||||
params = request.POST
|
||||
else:
|
||||
return HttpResponseBadRequest()
|
||||
api_params = {}
|
||||
for p in params:
|
||||
# защита от нескольких параметров с одним именем
|
||||
api_params[p] = params[p]
|
||||
|
||||
out = api_call_method(method_name, params)
|
||||
out = api_call_method(method_name, api_params)
|
||||
|
||||
response = HttpResponse(json.dumps(out, ensure_ascii=False))
|
||||
response = HttpResponse(json.dumps(out, ensure_ascii=False, indent=4))
|
||||
response.headers["Content-type"] = "application/json; charset=utf-8"
|
||||
return response
|
||||
|
@ -45,7 +45,7 @@
|
||||
<!-- а вообще можно подумать о том, чтобы сныкать ее содержимое в первую менюшку если сайт для телефонов:
|
||||
зачем иметь две выпадающие менюшки если есть одна? но это надо обсудить с Вадимом -->
|
||||
<div class="dropdown-wrapper" id="profile-menu-dropdown">
|
||||
<button class="dropdown-button fa fa-bars"></button>
|
||||
<button class="dropdown-button fa fa-user"></button>
|
||||
<div class="dropdown-content">
|
||||
{% if user.is_authenticated %}
|
||||
<a href="{% url 'profile' %}">Профиль</a>
|
||||
|
Reference in New Issue
Block a user