Add an endpoint to download a contact list

In case you need to download it, modify it, and re-upload it when you
don’t have access to the existing list.
This commit is contained in:
Chris Hill-Scott
2020-03-15 19:13:07 +00:00
parent ec2f36d054
commit b598af1eca
5 changed files with 66 additions and 3 deletions

View File

@@ -3,7 +3,7 @@ import itertools
import json
import urllib
import uuid
from io import BytesIO
from io import BytesIO, StringIO
from zipfile import BadZipFile
from flask import (
@@ -13,6 +13,7 @@ from flask import (
redirect,
render_template,
request,
send_file,
url_for,
)
from notifications_utils.columns import Columns
@@ -437,3 +438,14 @@ def contact_list(service_id, contact_list_id):
'views/uploads/contact-list/contact-list.html',
contact_list=ContactList.from_id(contact_list_id, service_id=service_id),
)
@main.route("/services/<uuid:service_id>/contact-list/<uuid:contact_list_id>.csv", methods=['GET'])
@user_has_permissions('send_messages')
def download_contact_list(service_id, contact_list_id):
contact_list = ContactList.from_id(contact_list_id, service_id=service_id)
return send_file(
filename_or_fp=StringIO(contact_list.contents),
attachment_filename=contact_list.saved_file_name,
as_attachment=True,
)