Update handler.py
Browse files- handler.py +20 -4
handler.py
CHANGED
|
@@ -41,11 +41,27 @@ class EndpointHandler:
|
|
| 41 |
|
| 42 |
def __call__(self, data: Dict[str, Any]) -> str:
|
| 43 |
try:
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
if not base64_string:
|
| 48 |
-
return {"error": "No base64 string
|
|
|
|
|
|
|
|
|
|
| 49 |
# Remove data URL prefix if present
|
| 50 |
if ',' in base64_string:
|
| 51 |
base64_string = base64_string.split(',')[1]
|
|
|
|
| 41 |
|
| 42 |
def __call__(self, data: Dict[str, Any]) -> str:
|
| 43 |
try:
|
| 44 |
+
base64_string = None
|
| 45 |
+
if "inputs" in data and isinstance(data["inputs"], str):
|
| 46 |
+
base64_string = data["inputs"]
|
| 47 |
+
|
| 48 |
+
# Case 2: Base64 in nested inputs dictionary
|
| 49 |
+
elif "inputs" in data and isinstance(data["inputs"], dict):
|
| 50 |
+
base64_string = data["inputs"].get("base64")
|
| 51 |
+
|
| 52 |
+
# Case 3: Direct base64 at root level
|
| 53 |
+
elif "base64" in data:
|
| 54 |
+
base64_string = data["base64"]
|
| 55 |
+
|
| 56 |
+
# Case 4: Try raw data as base64
|
| 57 |
+
elif isinstance(data, str):
|
| 58 |
+
base64_string = data
|
| 59 |
+
|
| 60 |
if not base64_string:
|
| 61 |
+
return {"error": "No base64 string found in input data. Available keys: " + str(data.keys())}
|
| 62 |
+
|
| 63 |
+
print("Found base64 string, length:", len(base64_string))
|
| 64 |
+
|
| 65 |
# Remove data URL prefix if present
|
| 66 |
if ',' in base64_string:
|
| 67 |
base64_string = base64_string.split(',')[1]
|