Update api tag

This commit is contained in:
RemiZOffAlex
2020-02-08 20:35:02 +03:00
parent db995990d4
commit b1fbffbc40

View File

@@ -5,7 +5,7 @@ __email__ = 'remizoffalex@mail.ru'
__url__ = 'https://remizoffalex.ru'
from . import jsonrpc, login_required
from .. import lib, models
from .. import app, lib, models
@jsonrpc.method('tag.add(name=str)')
@@ -67,8 +67,72 @@ def tag_exist(name):
return result
@jsonrpc.method('tag.pages(id=int, page=int)')
def tag_pages_list(id, page):
"""
Список статей
"""
tag = models.db_session.query(
models.Tag
).filter(
models.Tag.id==id
).first()
if tag is None:
raise ValueError
indexes = models.db_session.query(
models.TagPage.page_id
).filter(
models.TagPage.tag_id==id
)
pages = models.db_session.query(
models.Page
).filter(
models.Page.id.in_(indexes)
).order_by(
models.Page.title.asc()
)
pages = lib.getpage(
pages,
page,
app.config['ITEMS_ON_PAGE']
).all()
result = []
for page in pages:
newRow = page.as_dict()
newRow['user'] = page.user.as_dict()
newRow['tags'] = []
for tagLink in page.tags:
newRow['tags'].append(tagLink.tag.as_dict())
result.append(newRow)
return result
@jsonrpc.method('tag.pages.count(id=int)')
def tag_pages_count(id):
"""Общее количество статей
"""
tag = models.db_session.query(
models.Tag
).filter(
models.Tag.id==id
).first()
if tag is None:
raise ValueError
indexes = models.db_session.query(
models.TagPage.page_id
).filter(
models.TagPage.tag_id==id
)
result = models.db_session.query(
models.Page
).filter(
models.Page.id.in_(indexes)
).count()
return result
@jsonrpc.method('tags()')
@login_required
def tags_list():
"""
Список тегов