def get_all_notifications_for_service_job(service_id, job_id): data = notifications_filter_schema.load(request.args).data 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') paginated_notifications = get_notifications_for_job(service_id, job_id, filter_dict=data, page=page, page_size=page_size) kwargs = request.args.to_dict() kwargs['service_id'] = service_id kwargs['job_id'] = job_id notifications = None if data.get('format_for_csv'): notifications = [ notification.serialize_for_csv() for notification in paginated_notifications.items ] else: notifications = notification_with_template_schema.dump( paginated_notifications.items, many=True).data return jsonify(notifications=notifications, page_size=page_size, total=paginated_notifications.total, links=pagination_links( paginated_notifications, '.get_all_notifications_for_service_job', **kwargs)), 200
def test_get_all_notifications_for_job(notify_db, notify_db_session, sample_job): for i in range(0, 5): try: sample_notification(notify_db, notify_db_session, service=sample_job.service, template=sample_job.template, job=sample_job) except IntegrityError: pass notifications_from_db = get_notifications_for_job(sample_job.service.id, sample_job.id).items assert len(notifications_from_db) == 5
def get_all_notifications_for_service_job(service_id, job_id): data = notifications_filter_schema.load(request.args).data 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") paginated_notifications = get_notifications_for_job(service_id, job_id, filter_dict=data, page=page, page_size=page_size) kwargs = request.args.to_dict() kwargs["service_id"] = service_id kwargs["job_id"] = job_id notifications = None if data.get("format_for_csv"): notifications = [ notification.serialize_for_csv() for notification in paginated_notifications.items ] else: notifications = notification_with_template_schema.dump( paginated_notifications.items, many=True).data return ( jsonify( notifications=notifications, page_size=page_size, total=paginated_notifications.total, links=pagination_links(paginated_notifications, ".get_all_notifications_for_service_job", **kwargs), ), 200, )
def get_all_notifications_for_service_job(service_id, job_id): data = notifications_filter_schema.load(request.args).data 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') pagination = get_notifications_for_job( service_id, job_id, filter_dict=data, page=page, page_size=page_size) kwargs = request.args.to_dict() kwargs['service_id'] = service_id kwargs['job_id'] = job_id return jsonify( notifications=notification_with_template_schema.dump(pagination.items, many=True).data, page_size=page_size, total=pagination.total, links=pagination_links( pagination, '.get_all_notifications_for_service_job', **kwargs ) ), 200