diff --git a/app/dao/broadcast_message_dao.py b/app/dao/broadcast_message_dao.py index 003582deb..55d6829bf 100644 --- a/app/dao/broadcast_message_dao.py +++ b/app/dao/broadcast_message_dao.py @@ -11,7 +11,8 @@ from app.models import ( BroadcastProviderMessage, BroadcastProviderMessageNumber, BroadcastProviderMessageStatus, - BroadcastStatusType + BroadcastStatusType, + ServiceBroadcastSettings ) @@ -33,7 +34,20 @@ def dao_get_broadcast_messages_for_service(service_id): def dao_get_all_broadcast_messages(): - return BroadcastMessage.query.filter( + return db.session.query( + BroadcastMessage.id, + BroadcastMessage.reference, + ServiceBroadcastSettings.channel, + BroadcastMessage.content, + BroadcastMessage.areas, + BroadcastMessage.status, + BroadcastMessage.starts_at, + BroadcastMessage.finishes_at, + BroadcastMessage.approved_at, + BroadcastMessage.cancelled_at, + ).join( + ServiceBroadcastSettings, ServiceBroadcastSettings.service_id == BroadcastMessage.service_id + ).filter( BroadcastMessage.starts_at >= datetime(2021, 5, 25, 0, 0, 0), BroadcastMessage.stubbed == False, # noqa BroadcastMessage.status.in_(BroadcastStatusType.LIVE_STATUSES) diff --git a/app/v2/govuk_alerts/get_broadcasts.py b/app/v2/govuk_alerts/get_broadcasts.py index 290b01d8d..c307a6c8c 100644 --- a/app/v2/govuk_alerts/get_broadcasts.py +++ b/app/v2/govuk_alerts/get_broadcasts.py @@ -1,8 +1,10 @@ from flask import jsonify +from app.dao.broadcast_message_dao import dao_get_all_broadcast_messages from app.v2.govuk_alerts import v2_govuk_alerts_blueprint @v2_govuk_alerts_blueprint.route('') def get_broadcasts(): - return jsonify({}) + all_broadcasts = dao_get_all_broadcast_messages() + return jsonify(all_broadcasts) diff --git a/tests/app/dao/test_broadcast_message_dao.py b/tests/app/dao/test_broadcast_message_dao.py index 8b5a947e0..afbe4c879 100644 --- a/tests/app/dao/test_broadcast_message_dao.py +++ b/tests/app/dao/test_broadcast_message_dao.py @@ -1,5 +1,4 @@ from datetime import datetime -from flask import current_app from app.dao.broadcast_message_dao import ( create_broadcast_provider_message, @@ -119,4 +118,13 @@ def test_dao_get_all_broadcast_messages(sample_broadcast_service): broadcast_messages = dao_get_all_broadcast_messages() assert len(broadcast_messages) == 2 - assert broadcast_messages == [broadcast_message_2, broadcast_message_1] + assert broadcast_messages == [ + ( + broadcast_message_2.id, None, 'severe', 'Dear Sir/Madam, Hello. Yours Truly, The Government.', + {'areas': [], 'simple_polygons': []}, 'broadcasting', datetime(2021, 6, 20, 12, 0), + None, None, None), + ( + broadcast_message_1.id, None, 'severe', 'Dear Sir/Madam, Hello. Yours Truly, The Government.', + {'areas': [], 'simple_polygons': []}, 'cancelled', datetime(2021, 6, 15, 12, 0), + None, None, None) + ]