Browse Source

fix(api): Copies request dict to mutable copy (#51623)

Copies request dict so it's a mutable copy and we don't trigger an
error.
Richard Ortenberg 1 year ago
parent
commit
6b7be8a236
1 changed files with 8 additions and 7 deletions
  1. 8 7
      src/sentry/api/utils.py

+ 8 - 7
src/sentry/api/utils.py

@@ -109,22 +109,23 @@ def get_date_range_from_params(
     :return: A length 2 tuple containing start/end or raises an `InvalidParams`
     exception
     """
-    timeframe = params.get("timeframe")
-    timeframe_start = params.get("timeframeStart")
-    timeframe_end = params.get("timeframeEnd")
+    mutable_params = params.copy()
+    timeframe = mutable_params.get("timeframe")
+    timeframe_start = mutable_params.get("timeframeStart")
+    timeframe_end = mutable_params.get("timeframeEnd")
 
     if timeframe is not None:
-        params["statsPeriod"] = timeframe
+        mutable_params["statsPeriod"] = timeframe
 
     elif timeframe_start or timeframe_end:
         if not all([timeframe_start, timeframe_end]):
             raise InvalidParams("timeframeStart and timeframeEnd are both required")
         else:
-            params["statsPeriodStart"] = timeframe_start
-            params["statsPeriodEnd"] = timeframe_end
+            mutable_params["statsPeriodStart"] = timeframe_start
+            mutable_params["statsPeriodEnd"] = timeframe_end
 
     return get_date_range_from_stats_period(
-        params, optional=optional, default_stats_period=default_stats_period
+        mutable_params, optional=optional, default_stats_period=default_stats_period
     )