@@ -81,15 +81,6 @@ async def serve_index_html(request: Request = None, response: Response = None, p
81
81
Helper function to serve the index.html file or proxy to dev server based on PAD_DEV_MODE.
82
82
Optionally sets a pending_pad_id cookie if pad_id is provided.
83
83
"""
84
- # Set cookie if pad_id is provided
85
- if pad_id is not None and response is not None :
86
- response .set_cookie (
87
- key = "pending_pad_id" ,
88
- value = str (pad_id ),
89
- httponly = True ,
90
- secure = True ,
91
- samesite = "lax"
92
- )
93
84
94
85
if PAD_DEV_MODE :
95
86
try :
@@ -101,18 +92,43 @@ async def serve_index_html(request: Request = None, response: Response = None, p
101
92
102
93
async with httpx .AsyncClient () as client :
103
94
proxy_response = await client .get (url )
104
- response .body = proxy_response .content
105
- response .status_code = proxy_response .status_code
106
- response .media_type = proxy_response .headers .get ("content-type" )
107
- return response
95
+ # Create a new response with the proxied content
96
+ final_response = Response (
97
+ content = proxy_response .content ,
98
+ status_code = proxy_response .status_code ,
99
+ media_type = proxy_response .headers .get ("content-type" )
100
+ )
101
+
102
+ # Set cookie if pad_id is provided
103
+ if pad_id is not None :
104
+ final_response .set_cookie (
105
+ key = "pending_pad_id" ,
106
+ value = str (pad_id ),
107
+ httponly = True ,
108
+ secure = True ,
109
+ samesite = "lax"
110
+ )
111
+
112
+ return final_response
108
113
except Exception as e :
109
114
error_message = f"Error proxying to dev server: { e } "
110
115
print (error_message )
111
- response .status_code = 500
112
- return response
116
+ return Response (content = error_message , status_code = 500 )
113
117
else :
114
118
# For production, serve the static build
115
- return FileResponse (os .path .join (STATIC_DIR , "index.html" ), background = response )
119
+ file_response = FileResponse (os .path .join (STATIC_DIR , "index.html" ))
120
+
121
+ # Set cookie if pad_id is provided
122
+ if pad_id is not None :
123
+ file_response .set_cookie (
124
+ key = "pending_pad_id" ,
125
+ value = str (pad_id ),
126
+ httponly = True ,
127
+ secure = True ,
128
+ samesite = "lax"
129
+ )
130
+
131
+ return file_response
116
132
117
133
@app .get ("/pad/{pad_id}" )
118
134
async def read_pad (
0 commit comments