diff --git a/app/notifications/rest.py b/app/notifications/rest.py index 03869cfd3..60ea93eff 100644 --- a/app/notifications/rest.py +++ b/app/notifications/rest.py @@ -194,13 +194,12 @@ def get_all_notifications(): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_service(api_user['client'], page) - return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications', - request.args + **request.args.to_dict() ) ), 200 @@ -214,13 +213,14 @@ def get_all_notifications_for_service(service_id): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_service(service_id, page) - + kwargs = request.args.to_dict() + kwargs['service_id'] = service_id return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications_for_service', - request.args + **kwargs ) ), 200 @@ -234,13 +234,15 @@ def get_all_notifications_for_service_job(service_id, job_id): return jsonify(result="error", message="Invalid page"), 400 all_notifications = notifications_dao.get_notifications_for_job(service_id, job_id, page) - + kwargs = request.args.to_dict() + kwargs['service_id'] = service_id + kwargs['job_id'] = job_id return jsonify( notifications=notification_status_schema.dump(all_notifications.items, many=True).data, links=pagination_links( all_notifications, '.get_all_notifications_for_service_job', - request.args + **kwargs ) ), 200 @@ -256,13 +258,15 @@ def get_page_from_request(): return 1 -def pagination_links(pagination, endpoint, args): +def pagination_links(pagination, endpoint, **kwargs): + if 'page' in kwargs: + kwargs.pop('page', None) links = dict() if pagination.has_prev: - links['prev'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.prev_num)])) + links['prev'] = url_for(endpoint, page=pagination.prev_num, **kwargs) if pagination.has_next: - links['next'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.next_num)])) - links['last'] = url_for(endpoint, **dict(list(args.items()) + [('page', pagination.pages)])) + links['next'] = url_for(endpoint, page=pagination.next_num, **kwargs) + links['last'] = url_for(endpoint, page=pagination.pages, **kwargs) return links diff --git a/app/schemas.py b/app/schemas.py index 932fd1990..575b23ea9 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -171,8 +171,8 @@ class SmsAdminNotificationSchema(SmsNotificationSchema): class NotificationStatusSchema(BaseSchema): - template = fields.Nested(TemplateSchema, only=["id", "name"], dump_only=True) - job = fields.Nested(JobSchema, only=["id", "file_name"], dump_only=True) + template = fields.Nested(TemplateSchema, only=["id", "name", "template_type"], dump_only=True) + job = fields.Nested(JobSchema, only=["id", "original_file_name"], dump_only=True) class Meta: model = models.Notification diff --git a/tests/app/notifications/test_rest.py b/tests/app/notifications/test_rest.py index da5cc1dc7..9bc9ada62 100644 --- a/tests/app/notifications/test_rest.py +++ b/tests/app/notifications/test_rest.py @@ -27,10 +27,11 @@ def test_get_notification_by_id(notify_api, sample_notification): assert notification['status'] == 'sent' assert notification['template'] == { 'id': sample_notification.template.id, - 'name': sample_notification.template.name} + 'name': sample_notification.template.name, + 'template_type': sample_notification.template.template_type} assert notification['job'] == { 'id': str(sample_notification.job.id), - 'file_name': sample_notification.job.file_name + 'original_file_name': sample_notification.job.original_file_name } assert notification['to'] == '+447700900855' assert notification['service'] == str(sample_notification.service_id) @@ -72,10 +73,11 @@ def test_get_all_notifications(notify_api, sample_notification): assert notifications['notifications'][0]['status'] == 'sent' assert notifications['notifications'][0]['template'] == { 'id': sample_notification.template.id, - 'name': sample_notification.template.name} + 'name': sample_notification.template.name, + 'template_type': sample_notification.template.template_type} assert notifications['notifications'][0]['job'] == { 'id': str(sample_notification.job.id), - 'file_name': sample_notification.job.file_name + 'original_file_name': sample_notification.job.original_file_name } assert notifications['notifications'][0]['to'] == '+447700900855' assert notifications['notifications'][0]['service'] == str(sample_notification.service_id)