Ethscriptions commited on
Commit
00a4292
·
verified ·
1 Parent(s): 8d0b1be

Upload new_api_proxy.py

Browse files
Files changed (1) hide show
  1. new_api_proxy.py +34 -0
new_api_proxy.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+
4
+ NEW_API_PROXY_URL_ENV = "NEW_API_PROXY_URL"
5
+ NEW_API_PROXY_TOKEN_ENV = "NEW_API_PROXY_TOKEN"
6
+ NEW_API_PROXY_TOKEN_HEADER = "X-New-API-Proxy-Token"
7
+
8
+
9
+ def get_new_api_proxy_base_url(proxy_url=None):
10
+ raw = proxy_url if proxy_url is not None else os.getenv(NEW_API_PROXY_URL_ENV, "")
11
+ raw = str(raw or "").strip().strip('"').strip("'")
12
+ if not raw:
13
+ return ""
14
+ if "://" not in raw:
15
+ raw = f"https://{raw}"
16
+ return raw.rstrip("/")
17
+
18
+
19
+ def build_new_api_proxy_url(path, proxy_url=None):
20
+ proxy_base_url = get_new_api_proxy_base_url(proxy_url)
21
+ if not proxy_base_url:
22
+ return ""
23
+ if not path.startswith("/"):
24
+ path = f"/{path}"
25
+ return f"{proxy_base_url}{path}"
26
+
27
+
28
+ def with_new_api_proxy_headers(headers=None, proxy_url=None):
29
+ headers = dict(headers or {})
30
+ if get_new_api_proxy_base_url(proxy_url):
31
+ proxy_token = os.getenv(NEW_API_PROXY_TOKEN_ENV, "").strip()
32
+ if proxy_token:
33
+ headers[NEW_API_PROXY_TOKEN_HEADER] = proxy_token
34
+ return headers