36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
|
# encoding: utf-8
|
||
|
|
||
|
from flask import request, current_app
|
||
|
from flask_restful import Resource
|
||
|
from sqlalchemy import or_
|
||
|
|
||
|
from app.model.representative import RepresentativeModel
|
||
|
|
||
|
|
||
|
class RepresentativesApi(Resource):
|
||
|
def get(self):
|
||
|
page = int(request.args.get("page", 1))
|
||
|
query = RepresentativeModel.query
|
||
|
if request.args.get("name", "") != "":
|
||
|
query = query.filter(
|
||
|
RepresentativeModel
|
||
|
.name
|
||
|
.like('%%%s%%' % request.args.get("name", ""))
|
||
|
)
|
||
|
query = query.order_by(RepresentativeModel.name)
|
||
|
return [
|
||
|
representative.serialize()
|
||
|
for representative
|
||
|
in query
|
||
|
.paginate(page, current_app.config['API_PER_PAGE'], error_out=False)
|
||
|
.items
|
||
|
]
|
||
|
|
||
|
|
||
|
class RepresentativeApi(Resource):
|
||
|
def get(self, representative_id):
|
||
|
representative = RepresentativeModel.query.get(representative_id)
|
||
|
if representative is None:
|
||
|
return None, 404
|
||
|
return representative.serialize()
|