From dc73cfdde907c805e03c4e6b3364df0e96261c59 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Mar 2026 05:03:59 +0000 Subject: [PATCH 1/2] Initial plan From 3f38d5ec4dbafdd5501a0c1b1493ea5f6a5106e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Mar 2026 05:07:01 +0000 Subject: [PATCH 2/2] Convert resend-list endpoint from GET to POST with JSON body to avoid URL length limits Co-authored-by: gregv <6913307+gregv@users.noreply.github.com> --- api/volunteers/volunteers_views.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/api/volunteers/volunteers_views.py b/api/volunteers/volunteers_views.py index a2a8cfe..8c8fc8d 100644 --- a/api/volunteers/volunteers_views.py +++ b/api/volunteers/volunteers_views.py @@ -659,13 +659,21 @@ def admin_get_resend_email_statuses(): return _error_response(f"Failed to fetch email statuses: {str(e)}") -@bp.route('/admin/emails/resend-list', methods=['GET']) +@bp.route('/admin/emails/resend-list', methods=['POST']) @auth.require_org_member_with_permission("volunteer.admin", req_to_org_id=getOrgId) def admin_list_resend_emails(): """Admin endpoint to list all sent emails from Resend, indexed by recipient.""" try: - emails_param = request.args.get('emails', '') - filter_emails = [e.strip() for e in emails_param.split(',') if e.strip()] if emails_param else None + body = request.get_json(silent=True) or {} + emails_param = body.get('emails', []) + if isinstance(emails_param, str): + parsed = [e.strip() for e in emails_param.split(',') if e.strip()] + filter_emails = parsed if parsed else None + elif isinstance(emails_param, list): + parsed = [e.strip() for e in emails_param if isinstance(e, str) and e.strip()] + filter_emails = parsed if parsed else None + else: + filter_emails = None logger.info("Listing Resend emails, filter_count=%d", len(filter_emails) if filter_emails else 0)