article sections
This commit is contained in:
@@ -6,6 +6,26 @@ import json
|
||||
from src.database import db_session, read_json
|
||||
|
||||
|
||||
def pagination_params(v):
|
||||
try:
|
||||
if v.has_key("per_page"):
|
||||
pp=int(v["per_page"])
|
||||
else:
|
||||
pp=20
|
||||
if v.has_key("page"):
|
||||
o=(int(v["page"])-1) *pp
|
||||
else:
|
||||
o=0
|
||||
except ValueError:
|
||||
pp=20
|
||||
o=0
|
||||
if not (isinstance(pp,int) and pp>0 and pp<10000):
|
||||
pp=20
|
||||
if not (isinstance(o,int) and o>=0 and o<100000):
|
||||
o=0
|
||||
return (pp, o)
|
||||
|
||||
|
||||
def get_all():
|
||||
return Article.query.order_by(Article.published_date.desc()).all()
|
||||
|
||||
@@ -15,5 +35,9 @@ def search(s):
|
||||
def get_all_page(lim, off):
|
||||
return Article.query.order_by(Article.published_date.desc()).limit(lim).offset(off).all()
|
||||
|
||||
|
||||
def get_section_page(section_id, lim, off):
|
||||
return Article.query.filter(Article.section_id==section_id).order_by(Article.published_date.desc()).limit(lim).offset(off).all()
|
||||
|
||||
def count():
|
||||
return Article.query.count()
|
||||
|
||||
@@ -21,23 +21,11 @@ import controller
|
||||
@article_pages.route(".json")
|
||||
def index():
|
||||
v=request.values
|
||||
try:
|
||||
if v.has_key("per_page"):
|
||||
pp=int(v["per_page"])
|
||||
else:
|
||||
pp=20
|
||||
if v.has_key("page"):
|
||||
o=(int(v["page"])-1) *pp
|
||||
else:
|
||||
o=0
|
||||
except ValueError:
|
||||
pp=20
|
||||
o=0
|
||||
if not (isinstance(pp,int) and pp>0 and pp<10000):
|
||||
pp=20
|
||||
if not (isinstance(o,int) and o>=0 and o<100000):
|
||||
o=0
|
||||
articles=controller.get_all_page(pp,o)
|
||||
pp,o=controller.pagination_params(v) # extract per_page and offset from params
|
||||
if v.has_key("section_id"):
|
||||
articles=controller.get_section_page(int(v["section_id"]),pp,o)
|
||||
else:
|
||||
articles=controller.get_all_page(pp,o)
|
||||
resp = jsonify(articles=articles)
|
||||
resp.headers['Pagination-Limit']=pp
|
||||
resp.headers['Pagination-Offset']=o
|
||||
|
||||
Reference in New Issue
Block a user