mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-18 05:29:38 -04:00
Make s3upload function return the UUID
Generating the UUID can be can be contained within this function, thus any other part of the code using it doesn’t have to do the ID-generating stuff itself.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import uuid
|
||||
import botocore
|
||||
from boto3 import resource
|
||||
from flask import current_app
|
||||
@@ -5,7 +6,7 @@ from flask import current_app
|
||||
FILE_LOCATION_STRUCTURE = 'service-{}-notify/{}.csv'
|
||||
|
||||
|
||||
def s3upload(upload_id, service_id, filedata, region):
|
||||
def s3upload(service_id, filedata, region):
|
||||
s3 = resource('s3')
|
||||
bucket_name = current_app.config['CSV_UPLOAD_BUCKET_NAME']
|
||||
contents = filedata['data']
|
||||
@@ -27,10 +28,13 @@ def s3upload(upload_id, service_id, filedata, region):
|
||||
s3.create_bucket(Bucket=bucket_name,
|
||||
CreateBucketConfiguration={'LocationConstraint': region})
|
||||
|
||||
upload_id = str(uuid.uuid4())
|
||||
upload_file_name = FILE_LOCATION_STRUCTURE.format(service_id, upload_id)
|
||||
key = s3.Object(bucket_name, upload_file_name)
|
||||
key.put(Body=contents, ServerSideEncryption='AES256')
|
||||
|
||||
return upload_id
|
||||
|
||||
|
||||
def s3download(service_id, upload_id):
|
||||
contents = ''
|
||||
|
||||
@@ -110,9 +110,7 @@ def send_messages(service_id, template_id):
|
||||
form = CsvUploadForm()
|
||||
if form.validate_on_submit():
|
||||
try:
|
||||
upload_id = str(uuid.uuid4())
|
||||
s3upload(
|
||||
upload_id,
|
||||
upload_id = s3upload(
|
||||
service_id,
|
||||
Spreadsheet.from_file(form.file.data.filename, form.file.data).as_dict,
|
||||
current_app.config['AWS_REGION']
|
||||
@@ -161,6 +159,8 @@ def get_example_csv(service_id, template_id):
|
||||
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
|
||||
def send_test(service_id, template_id):
|
||||
|
||||
file_name = 'Test message'
|
||||
|
||||
template = Template(
|
||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
||||
prefix=current_service['name']
|
||||
@@ -173,13 +173,18 @@ def send_test(service_id, template_id):
|
||||
[first_column_heading[template.template_type]] + list(template.placeholders),
|
||||
get_example_csv_rows(template, use_example_as_example=False, submitted_fields=request.form)
|
||||
])
|
||||
filedata = {
|
||||
'file_name': 'Test message',
|
||||
'data': output.getvalue()
|
||||
upload_id = s3upload(
|
||||
service_id,
|
||||
{
|
||||
'file_name': file_name,
|
||||
'data': output.getvalue()
|
||||
},
|
||||
current_app.config['AWS_REGION']
|
||||
)
|
||||
session['upload_data'] = {
|
||||
"template_id": template_id,
|
||||
"original_file_name": file_name
|
||||
}
|
||||
upload_id = str(uuid.uuid4())
|
||||
s3upload(upload_id, service_id, filedata, current_app.config['AWS_REGION'])
|
||||
session['upload_data'] = {"template_id": template_id, "original_file_name": filedata['file_name']}
|
||||
return redirect(url_for(
|
||||
'.check_messages',
|
||||
upload_id=upload_id,
|
||||
|
||||
Reference in New Issue
Block a user