Add trade type on api options
This commit is contained in:
parent
c6bc695881
commit
c8dc1b11e2
|
@ -29,6 +29,7 @@ class LotView(View):
|
||||||
"""
|
"""
|
||||||
format = EnumField(LotFormat, missing=None)
|
format = EnumField(LotFormat, missing=None)
|
||||||
search = f.Str(missing=None)
|
search = f.Str(missing=None)
|
||||||
|
type = f.Str(missing=None)
|
||||||
|
|
||||||
def post(self):
|
def post(self):
|
||||||
l = request.get_json()
|
l = request.get_json()
|
||||||
|
@ -88,6 +89,7 @@ class LotView(View):
|
||||||
else:
|
else:
|
||||||
query = Lot.query
|
query = Lot.query
|
||||||
query = self.visibility_filter(query)
|
query = self.visibility_filter(query)
|
||||||
|
query = self.type_filter(query, args)
|
||||||
if args['search']:
|
if args['search']:
|
||||||
query = query.filter(Lot.name.ilike(args['search'] + '%'))
|
query = query.filter(Lot.name.ilike(args['search'] + '%'))
|
||||||
lots = query.paginate(per_page=6 if args['search'] else query.count())
|
lots = query.paginate(per_page=6 if args['search'] else query.count())
|
||||||
|
@ -104,6 +106,21 @@ class LotView(View):
|
||||||
Lot.owner_id == g.user.id))
|
Lot.owner_id == g.user.id))
|
||||||
return query
|
return query
|
||||||
|
|
||||||
|
def type_filter(self, query, args):
|
||||||
|
lot_type = args.get('type')
|
||||||
|
|
||||||
|
# temporary
|
||||||
|
if lot_type == "temporary":
|
||||||
|
return query.filter(Lot.trade == None)
|
||||||
|
|
||||||
|
if lot_type == "incoming":
|
||||||
|
return query.filter(Lot.trade and Trade.user_to == g.user)
|
||||||
|
|
||||||
|
if lot_type == "outgoing":
|
||||||
|
return query.filter(Lot.trade and Trade.user_from == g.user)
|
||||||
|
|
||||||
|
return query
|
||||||
|
|
||||||
def query(self, args):
|
def query(self, args):
|
||||||
query = Lot.query.distinct()
|
query = Lot.query.distinct()
|
||||||
return query
|
return query
|
||||||
|
|
Reference in New Issue