def platform_admin_returned_letters():
    form = ReturnedLettersForm()

    if form.validate_on_submit():
        references = [
            re.sub('NOTIFY00[0-9]', '', r.strip())
            for r in form.references.data.split('\n') if r.strip()
        ]

        try:
            letter_jobs_client.submit_returned_letters(references)
            redis_client.delete_cache_keys_by_pattern(
                'service-????????-????-????-????-????????????-returned-letters-summary'
            )
        except HTTPError as error:
            if error.status_code == 400:
                error_references = [
                    re.match('references (.*) does not match',
                             e['message']).group(1) for e in error.message
                ]
                form.references.errors.append("Invalid references: {}".format(
                    ', '.join(error_references)))
            else:
                raise error
        else:
            flash('Submitted {} letter references'.format(len(references)),
                  'default')
            return redirect(url_for('.platform_admin_returned_letters'))
    return render_template(
        'views/platform-admin/returned-letters.html',
        form=form,
    )
def platform_admin_returned_letters():
    form = ReturnedLettersForm()

    if form.validate_on_submit():
        references = [re.sub("NOTIFY00[0-9]", "", r.strip()) for r in form.references.data.split("\n") if r.strip()]

        try:
            letter_jobs_client.submit_returned_letters(references)
        except HTTPError as error:
            if error.status_code == 400:
                error_references = [re.match("references (.*) does not match", e["message"]).group(1) for e in error.message]
                form.references.errors.append("Invalid references: {}".format(", ".join(error_references)))
            else:
                raise error
        else:
            flash("Submitted {} letter references".format(len(references)), "default")
            return redirect(url_for(".platform_admin_returned_letters"))
    return render_template(
        "views/platform-admin/returned-letters.html",
        form=form,
    )