ciyidogan commited on
Commit
0aab98a
·
verified ·
1 Parent(s): eed4bd4

Update admin_routes.py

Browse files
Files changed (1) hide show
  1. 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(project_id: int, current_user: str = Depends(auth.get_current_user)):
 
 
 
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
- logger.error(f"Failed to get project: {str(e)}")
407
  raise HTTPException(status_code=500, detail=str(e))
408
 
409
  @router.post("/projects")
410
- async def create_project(project_data: dict, current_user: str = Depends(auth.get_current_user)):
 
 
 
411
  """Create new project"""
412
  try:
413
  config = load_config()
414
-
415
- # Generate new project ID
416
- max_id = max([p.get("id", 0) for p in config.get("projects", [])], default=0)
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": [], # Boş versiyon listesi ile başla
434
- "last_update_date": datetime.now().isoformat()
435
  }
436
-
437
- # Add to config
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
- # Log activity
446
- log_activity("create_project", {
447
- "project_id": new_id,
448
- "project_name": new_project["name"]
449
- }, current_user)
450
-
451
  return new_project
452
-
453
  except Exception as e:
454
- logger.error(f"Failed to create project: {str(e)}")
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}")