def update_email_branding(branding_id, logo=None): email_branding = email_branding_client.get_email_branding( branding_id)["email_branding"] form = ServiceUpdateEmailBranding( name=email_branding["name"], text=email_branding["text"], colour=email_branding["colour"], brand_type=email_branding["brand_type"], ) logo = logo if logo else email_branding.get( "logo") if email_branding else None if form.validate_on_submit(): if form.file.data: upload_filename = upload_email_logo( form.file.data.filename, form.file.data, current_app.config["AWS_REGION"], user_id=session["user_id"], ) if logo and logo.startswith( TEMP_TAG.format(user_id=session["user_id"])): delete_email_temp_file(logo) return redirect( url_for( ".update_email_branding", branding_id=branding_id, logo=upload_filename, )) updated_logo_name = permanent_email_logo_name( logo, session["user_id"]) if logo else None email_branding_client.update_email_branding( branding_id=branding_id, logo=updated_logo_name, name=form.name.data, text=form.text.data, colour=form.colour.data, brand_type=form.brand_type.data, ) if logo: persist_logo(logo, updated_logo_name) delete_email_temp_files_created_by(session["user_id"]) return redirect(url_for(".email_branding", branding_id=branding_id)) return render_template( "views/email-branding/manage-branding.html", form=form, email_branding=email_branding, cdn_url=get_logo_cdn_domain(), logo=logo, )
def upload_letter_logos(old_filename, new_filename, png_file, user_id): persist_logo(old_filename, permanent_letter_logo_name(new_filename, 'svg')) upload_letter_png_logo( permanent_letter_logo_name(new_filename, 'png'), png_file, current_app.config['AWS_REGION'], ) delete_letter_temp_files_created_by(user_id)
def test_persist_logo_returns_if_not_temp(client, mocker, fake_uuid): filename = 'logo.png' persist_logo(filename, filename) mocked_get_s3_object = mocker.patch( 'app.s3_client.s3_logo_client.get_s3_object') mocked_delete_s3_object = mocker.patch( 'app.s3_client.s3_logo_client.delete_s3_object') mocked_get_s3_object.assert_not_called() mocked_delete_s3_object.assert_not_called()
def test_persist_logo(client, mocker, fake_uuid, upload_filename): mocker.patch.dict('flask.current_app.config', {'LOGO_UPLOAD_BUCKET_NAME': bucket}) mocked_get_s3_object = mocker.patch( 'app.s3_client.s3_logo_client.get_s3_object') mocked_delete_s3_object = mocker.patch( 'app.s3_client.s3_logo_client.delete_s3_object') new_filename = permanent_email_logo_name(upload_filename, fake_uuid) persist_logo(upload_filename, new_filename) mocked_get_s3_object.assert_called_once_with(bucket, new_filename) mocked_delete_s3_object.assert_called_once_with(upload_filename)
def create_email_branding(logo=None): form = ServiceUpdateEmailBranding(brand_type='org') if form.validate_on_submit(): if form.file.data: upload_filename = upload_email_logo( form.file.data.filename, form.file.data, current_app.config['AWS_REGION'], user_id=session["user_id"] ) if logo and logo.startswith(TEMP_TAG.format(user_id=session['user_id'])): delete_email_temp_file(logo) return redirect(url_for('.create_email_branding', logo=upload_filename)) updated_logo_name = permanent_email_logo_name(logo, session["user_id"]) if logo else None email_branding_client.create_email_branding( logo=updated_logo_name, name=form.name.data, text=form.text.data, colour=form.colour.data, brand_type=form.brand_type.data, ) if logo: persist_logo(logo, updated_logo_name) delete_email_temp_files_created_by(session["user_id"]) return redirect(url_for('.email_branding')) return render_template( 'views/email-branding/manage-branding.html', form=form, cdn_url=get_logo_cdn_domain(), logo=logo )
def upload_letter_svg_logo(old_filename, new_filename, user_id): persist_logo(old_filename, permanent_letter_logo_name(new_filename, 'svg')) delete_letter_temp_files_created_by(user_id)