Spaces:
Building
Building
Update admin_routes.py
Browse files- admin_routes.py +30 -36
admin_routes.py
CHANGED
@@ -382,41 +382,40 @@ async def list_projects(
|
|
382 |
return projects
|
383 |
|
384 |
@router.get("/projects/{project_id}")
|
385 |
-
async def get_project(
|
|
|
|
|
|
|
386 |
"""Get single project by ID"""
|
387 |
try:
|
388 |
config = load_config()
|
389 |
projects = config.get("projects", [])
|
390 |
-
|
391 |
-
# Find project
|
392 |
project = next((p for p in projects if p.get("id") == project_id), None)
|
393 |
-
|
394 |
-
if not project:
|
395 |
-
raise HTTPException(status_code=404, detail="Project not found")
|
396 |
-
|
397 |
-
# Filter deleted if not requested
|
398 |
-
if project.get("deleted", False):
|
399 |
raise HTTPException(status_code=404, detail="Project not found")
|
400 |
-
|
401 |
return project
|
402 |
-
|
403 |
except HTTPException:
|
404 |
raise
|
405 |
except Exception as e:
|
406 |
-
|
407 |
raise HTTPException(status_code=500, detail=str(e))
|
408 |
|
409 |
@router.post("/projects")
|
410 |
-
async def create_project(
|
|
|
|
|
|
|
411 |
"""Create new project"""
|
412 |
try:
|
413 |
config = load_config()
|
414 |
-
|
415 |
-
#
|
416 |
-
max_id = max(
|
417 |
new_id = max_id + 1
|
418 |
-
|
419 |
-
# Create project
|
420 |
new_project = {
|
421 |
"id": new_id,
|
422 |
"name": project_data["name"],
|
@@ -430,28 +429,23 @@ async def create_project(project_data: dict, current_user: str = Depends(auth.ge
|
|
430 |
"timezone": project_data.get("timezone", "Europe/Istanbul"),
|
431 |
"region": project_data.get("region", "tr-TR"),
|
432 |
"test_users": project_data.get("test_users", []),
|
433 |
-
"versions": [],
|
434 |
-
"last_update_date": datetime.
|
435 |
}
|
436 |
-
|
437 |
-
|
438 |
-
if "projects" not in config:
|
439 |
-
config["projects"] = []
|
440 |
-
config["projects"].append(new_project)
|
441 |
-
|
442 |
-
# Save config
|
443 |
save_config(config)
|
444 |
-
|
445 |
-
#
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
return new_project
|
452 |
-
|
453 |
except Exception as e:
|
454 |
-
|
455 |
raise HTTPException(status_code=500, detail=str(e))
|
456 |
|
457 |
@router.put("/projects/{project_id}")
|
|
|
382 |
return projects
|
383 |
|
384 |
@router.get("/projects/{project_id}")
|
385 |
+
async def get_project(
|
386 |
+
project_id: int,
|
387 |
+
username: str = Depends(verify_token)
|
388 |
+
):
|
389 |
"""Get single project by ID"""
|
390 |
try:
|
391 |
config = load_config()
|
392 |
projects = config.get("projects", [])
|
393 |
+
|
|
|
394 |
project = next((p for p in projects if p.get("id") == project_id), None)
|
395 |
+
if not project or project.get("deleted", False):
|
|
|
|
|
|
|
|
|
|
|
396 |
raise HTTPException(status_code=404, detail="Project not found")
|
397 |
+
|
398 |
return project
|
399 |
+
|
400 |
except HTTPException:
|
401 |
raise
|
402 |
except Exception as e:
|
403 |
+
log(f"Failed to get project: {e}") # logger yerine log
|
404 |
raise HTTPException(status_code=500, detail=str(e))
|
405 |
|
406 |
@router.post("/projects")
|
407 |
+
async def create_project(
|
408 |
+
project_data: dict,
|
409 |
+
username: str = Depends(verify_token)
|
410 |
+
):
|
411 |
"""Create new project"""
|
412 |
try:
|
413 |
config = load_config()
|
414 |
+
|
415 |
+
# ID üret
|
416 |
+
max_id = max((p.get("id", 0) for p in config.get("projects", [])), default=0)
|
417 |
new_id = max_id + 1
|
418 |
+
|
|
|
419 |
new_project = {
|
420 |
"id": new_id,
|
421 |
"name": project_data["name"],
|
|
|
429 |
"timezone": project_data.get("timezone", "Europe/Istanbul"),
|
430 |
"region": project_data.get("region", "tr-TR"),
|
431 |
"test_users": project_data.get("test_users", []),
|
432 |
+
"versions": [],
|
433 |
+
"last_update_date": datetime.utcnow().isoformat()
|
434 |
}
|
435 |
+
|
436 |
+
config.setdefault("projects", []).append(new_project)
|
|
|
|
|
|
|
|
|
|
|
437 |
save_config(config)
|
438 |
+
|
439 |
+
# eski log_activity yerine add_activity_log
|
440 |
+
add_activity_log(config, username, "CREATE_PROJECT",
|
441 |
+
"project", new_id, new_project["name"])
|
442 |
+
save_config(config)
|
443 |
+
|
444 |
+
log(f"✅ Project '{new_project['name']}' created by {username}")
|
445 |
return new_project
|
446 |
+
|
447 |
except Exception as e:
|
448 |
+
log(f"Failed to create project: {e}")
|
449 |
raise HTTPException(status_code=500, detail=str(e))
|
450 |
|
451 |
@router.put("/projects/{project_id}")
|