def create_email_branding(logo=None):
    form = ServiceCreateEmailBranding()

    if form.validate_on_submit():
        if form.file.data:
            upload_filename = upload_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_temp_file(logo)

            return redirect(
                url_for('.create_email_branding', logo=upload_filename))

        if logo:
            logo = persist_logo(logo, session["user_id"])

        delete_temp_files_created_by(session["user_id"])

        email_branding_client.create_email_branding(logo=logo,
                                                    name=form.name.data,
                                                    colour=form.colour.data)

        return redirect(url_for('.email_branding'))

    return render_template('views/email-branding/manage-branding.html',
                           form=form,
                           cdn_url=get_cdn_domain(),
                           logo=logo)
Пример #2
0
def create_email_branding(logo=None):
    form = ServiceUpdateEmailBranding(brand_type="custom_logo")

    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,
    )