Spaces:
Running
Running
Update admin_routes.py
Browse files- admin_routes.py +30 -1
admin_routes.py
CHANGED
@@ -904,6 +904,35 @@ async def delete_version(
|
|
904 |
log(f"✅ Version {version_id} deleted for project '{project['name']}' by {username}")
|
905 |
return {"success": True}
|
906 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
907 |
# ===================== API Endpoints =====================
|
908 |
@router.get("/apis")
|
909 |
async def list_apis(
|
@@ -1018,7 +1047,7 @@ async def delete_api(api_name: str, username: str = Depends(verify_token)):
|
|
1018 |
for intent in version.get("intents", []):
|
1019 |
if intent.get("action") == api_name:
|
1020 |
raise HTTPException(status_code=400,
|
1021 |
-
detail=f"API is used in intent '{intent.get('name', 'unknown')}' in project '{project['name']}' version {version.get('
|
1022 |
|
1023 |
# Soft delete
|
1024 |
api["deleted"] = True
|
|
|
904 |
log(f"✅ Version {version_id} deleted for project '{project['name']}' by {username}")
|
905 |
return {"success": True}
|
906 |
|
907 |
+
@router.post("/validate/regex")
|
908 |
+
async def validate_regex(
|
909 |
+
request: dict = Body(...),
|
910 |
+
username: str = Depends(verify_token)
|
911 |
+
):
|
912 |
+
"""Validate regex pattern"""
|
913 |
+
pattern = request.get("pattern", "")
|
914 |
+
test_value = request.get("test_value", "")
|
915 |
+
|
916 |
+
try:
|
917 |
+
import re
|
918 |
+
compiled_regex = re.compile(pattern)
|
919 |
+
matches = bool(compiled_regex.match(test_value))
|
920 |
+
|
921 |
+
return {
|
922 |
+
"valid": True,
|
923 |
+
"matches": matches,
|
924 |
+
"pattern": pattern,
|
925 |
+
"test_value": test_value
|
926 |
+
}
|
927 |
+
except Exception as e:
|
928 |
+
return {
|
929 |
+
"valid": False,
|
930 |
+
"matches": False,
|
931 |
+
"error": str(e),
|
932 |
+
"pattern": pattern,
|
933 |
+
"test_value": test_value
|
934 |
+
}
|
935 |
+
|
936 |
# ===================== API Endpoints =====================
|
937 |
@router.get("/apis")
|
938 |
async def list_apis(
|
|
|
1047 |
for intent in version.get("intents", []):
|
1048 |
if intent.get("action") == api_name:
|
1049 |
raise HTTPException(status_code=400,
|
1050 |
+
detail=f"API is used in intent '{intent.get('name', 'unknown')}' in project '{project['name']}' version {version.get('version_number', version.get('id'))}")
|
1051 |
|
1052 |
# Soft delete
|
1053 |
api["deleted"] = True
|