Появился метод media.list
This commit is contained in:
parent
a9d3a34c0b
commit
b8478e4c26
@ -714,14 +714,16 @@ class ApiMedia:
|
||||
params=[
|
||||
ApiRequestParam(),
|
||||
ApiParamAccessToken(),
|
||||
ApiParamInt(name="m_id", description="ID медиа",
|
||||
ApiParamInt(name="media_id", description="ID медиа",
|
||||
value_min=0, value_max=1000000000),
|
||||
], returns="<code>медиа</code>, в противном случае ошибку")
|
||||
async def get(request, access_token, m_id):
|
||||
async def get(request, access_token, media_id):
|
||||
if request.method != "GET":
|
||||
return make_error_object(Exception(API_ERROR_INVALID_REQUEST, "method must be executed http GET method"))
|
||||
|
||||
m = await Media.objects.filter(owner=access_token.user, pk=m_id).afirst()
|
||||
m = await Media.objects.filter(Q(owner=access_token.user) |
|
||||
Q(owner__account__photo_id=media_id) |
|
||||
Q(owner__account__profile_background_id=media_id)).filter(pk=media_id).afirst()
|
||||
|
||||
if m is not None:
|
||||
try:
|
||||
@ -733,6 +735,30 @@ class ApiMedia:
|
||||
traceback.print_exc()
|
||||
return make_error_object(Exception(API_ERROR_NOT_FOUND, "object in storage not found"))
|
||||
|
||||
@staticmethod
|
||||
@api_method("media.list",
|
||||
doc="Получение списка всех загруженных медиа для текущего пользователя",
|
||||
params=[
|
||||
ApiParamAccessToken(),
|
||||
ApiParamInt(name="count", description="Количество объектов, максимум 100, по умолчанию 25",
|
||||
value_min=1, value_max=100, default=25, required=False),
|
||||
ApiParamInt(name="offset", description="Смещение списка относительно начала",
|
||||
value_min=0, value_max=100000, default=0, required=False),
|
||||
], returns="Список с объектами media.")
|
||||
async def get_list(access_token, count, offset):
|
||||
ms = [item async for item in
|
||||
Media.objects.filter(owner=access_token.user, ).order_by('upload_datetime')[offset:offset + count]
|
||||
]
|
||||
|
||||
res = [{
|
||||
'id': m.id,
|
||||
'name': m.original_name,
|
||||
'upload_time': int(time.mktime(m.upload_datetime.timetuple())),
|
||||
'extension': m.extension
|
||||
} for m in ms]
|
||||
|
||||
return api_make_response(res)
|
||||
|
||||
|
||||
class DatabaseApi:
|
||||
# TODO переместить сюда форму заказа, список городов
|
||||
|
Reference in New Issue
Block a user