From f1ea39d4c07ff2607db5cafc6df6f86588e54ada Mon Sep 17 00:00:00 2001 From: Paul Craig Date: Tue, 22 Nov 2016 17:30:03 +0000 Subject: [PATCH] Simplify `_filter_query()` function --- app/dao/notifications_dao.py | 15 ++++++++++----- app/notifications/rest.py | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index a1d15d87a..2da210069 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -296,15 +296,20 @@ def get_notifications_for_service( def _filter_query(query, filter_dict=None): if filter_dict is None: - filter_dict = MultiDict() - else: - filter_dict = MultiDict(filter_dict) - statuses = filter_dict.getlist('status') if 'status' in filter_dict else None + return query + + multidict = MultiDict(filter_dict) + + # filter by status + statuses = multidict.getlist('status') if statuses: query = query.filter(Notification.status.in_(statuses)) - template_types = filter_dict.getlist('template_type') if 'template_type' in filter_dict else None + + # filter by template + template_types = multidict.getlist('template_type') if template_types: query = query.join(Template).filter(Template.template_type.in_(template_types)) + return query diff --git a/app/notifications/rest.py b/app/notifications/rest.py index c8b18da6b..126f0feee 100644 --- a/app/notifications/rest.py +++ b/app/notifications/rest.py @@ -170,8 +170,8 @@ def get_notification_by_id(notification_id): def get_all_notifications(): data = notifications_filter_schema.load(request.args).data include_jobs = data.get('include_jobs', False) - page = data['page'] if 'page' in data else 1 - page_size = data['page_size'] if 'page_size' in data else current_app.config.get('PAGE_SIZE') + page = data.get('page', 1) + page_size = data.get('page_size', current_app.config.get('PAGE_SIZE')) limit_days = data.get('limit_days') pagination = notifications_dao.get_notifications_for_service(