consolidate the retry mechanism into the handle_http_errors decorator, mitigates idempotency risks by limiting retries to read-only operations

This commit is contained in:
Taylor Wilsdon
2025-07-17 13:57:21 -04:00
parent 181ffb650d
commit f08373a8b2
9 changed files with 116 additions and 165 deletions

View File

@@ -12,15 +12,14 @@ from mcp import types
from auth.service_decorator import require_google_service
from core.server import server
from core.utils import handle_http_errors, retry_on_ssl_error
from core.utils import handle_http_errors
logger = logging.getLogger(__name__)
@server.tool()
@require_google_service("forms", "forms")
@handle_http_errors("create_form")
@retry_on_ssl_error()
@require_google_service("forms", "forms")
async def create_form(
service,
user_google_email: str,
@@ -68,9 +67,8 @@ async def create_form(
@server.tool()
@handle_http_errors("get_form", is_read_only=True)
@require_google_service("forms", "forms")
@handle_http_errors("get_form")
@retry_on_ssl_error()
async def get_form(
service,
user_google_email: str,
@@ -125,9 +123,8 @@ async def get_form(
@server.tool()
@require_google_service("forms", "forms")
@handle_http_errors("set_publish_settings")
@retry_on_ssl_error()
@require_google_service("forms", "forms")
async def set_publish_settings(
service,
user_google_email: str,
@@ -164,9 +161,8 @@ async def set_publish_settings(
@server.tool()
@handle_http_errors("get_form_response", is_read_only=True)
@require_google_service("forms", "forms")
@handle_http_errors("get_form_response")
@retry_on_ssl_error()
async def get_form_response(
service,
user_google_email: str,
@@ -219,9 +215,8 @@ async def get_form_response(
@server.tool()
@handle_http_errors("list_form_responses", is_read_only=True)
@require_google_service("forms", "forms")
@handle_http_errors("list_form_responses")
@retry_on_ssl_error()
async def list_form_responses(
service,
user_google_email: str,