mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
new blueprint `/service/<id>/broadcast-message` with the following endpoints: * GET / - get all broadcast messages for a service * GET /<id> - get a single broadcast message * POST / - create a new broadcast message * POST /<id> - update an existing broadcast message's data * POST /<id>/status - move a broadcast message to a new status I've kept the regular data update (eg personalisation, start and end times) separate from the status update, just to keep separation of concerns a bit more rigid, especially around who can update. I've included schemas for the three POSTs, they're pretty straightforward.
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
from app.schema_validation.definitions import uuid
|
|
from app.models import BroadcastStatusType
|
|
|
|
create_broadcast_message_schema = {
|
|
'$schema': 'http://json-schema.org/draft-04/schema#',
|
|
'description': 'POST create broadcast_message schema',
|
|
'type': 'object',
|
|
'title': 'Create broadcast_message',
|
|
'properties': {
|
|
'template_id': uuid,
|
|
'service_id': uuid,
|
|
'created_by': uuid,
|
|
'personalisation': {'type': 'object'},
|
|
'starts_at': {'type': 'string', 'format': 'date-time'},
|
|
'finishes_at': {'type': 'string', 'format': 'date-time'},
|
|
'areas': {"type": "array", "items": {"type": "string"}},
|
|
},
|
|
'required': ['template_id', 'service_id', 'created_by'],
|
|
'additionalProperties': False
|
|
}
|
|
|
|
update_broadcast_message_schema = {
|
|
'$schema': 'http://json-schema.org/draft-04/schema#',
|
|
'description': 'POST update broadcast_message schema',
|
|
'type': 'object',
|
|
'title': 'Update broadcast_message',
|
|
'properties': {
|
|
'personalisation': {'type': 'object'},
|
|
'starts_at': {'type': 'string', 'format': 'date-time'},
|
|
'finishes_at': {'type': 'string', 'format': 'date-time'},
|
|
'areas': {"type": "array", "items": {"type": "string"}},
|
|
},
|
|
'required': [],
|
|
'additionalProperties': False
|
|
}
|
|
|
|
update_broadcast_message_status_schema = {
|
|
'$schema': 'http://json-schema.org/draft-04/schema#',
|
|
'description': 'POST update broadcast_message status schema',
|
|
'type': 'object',
|
|
'title': 'Update broadcast_message',
|
|
'properties': {
|
|
'status': {'type': 'string', 'enum': BroadcastStatusType.STATUSES},
|
|
'created_by': uuid,
|
|
},
|
|
'required': ['status', 'created_by'],
|
|
'additionalProperties': False
|
|
}
|