web: hosts: HostList: Add filtering to GET method
parent
cd1835f4f6
commit
0d6e20d5b5
|
@ -11,8 +11,22 @@ log = logging.getLogger(__name__)
|
|||
class HostListController(controllers.BaseController):
|
||||
|
||||
def GET(self, request):
|
||||
hosts = request.db.query(model.Host)
|
||||
for attr in request.GET:
|
||||
try:
|
||||
column = model.Host.__table__.columns[attr]
|
||||
except KeyError:
|
||||
continue
|
||||
for value in request.GET.getall(attr):
|
||||
if not value:
|
||||
continue
|
||||
value = value.replace('%', r'\%')
|
||||
if not value.endswith('*'):
|
||||
value += '*'
|
||||
value = value.replace('*', '%')
|
||||
hosts = hosts.filter(column.like(value))
|
||||
response = request.ResponseClass()
|
||||
response.set_payload(None, request.db.query(model.Host).all())
|
||||
response.set_payload(None, hosts.all())
|
||||
return response
|
||||
|
||||
def POST(self, request):
|
||||
|
|
Loading…
Reference in New Issue