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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user